OpenStack实践(五):Linux Bridge方式实现Load Balance
admin
2023-04-09 06:43:26
0

环境:

openstack版本pike
控制节点主机openstack-controller(ubuntu 16.04.5) 172.27.34.37
计算节点主机openstack-computer(ubuntu 16.04.5) 172.27.34.38
vlan100
centos01(172.27.100.17)、centos02(172.27.100.11)


ubuntu安装详见:Ubuntu16.04.5以lvm方式安装全记录

openstack安装详见:OpenStack实践(一):Ubuntu16.04下DevStack方式搭建p版OpenStack


拓扑图:

OpenStack实践(五):Linux Bridge方式实现Load Balance


目标:

外网pc访问Load Balancers ip 172.27.34.11,会轮询访问后端web服务器


本文目录:

一、新建vlan
二、新建实例centos01

三、配置安全组

四、配置float ip

五、新建实例centos02

六、配置lbaas


一、新建vlan

1.配置ml2_conf.ini

主备机同时配置ml2_conf.ini

stack@openstack-controller:~$ view /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
tenant_network_types = vlan
extension_drivers = port_security
mechanism_drivers = openvswitch,linuxbridge
type_drivers = local,flat,vlan,gre,vxlan,geneve

[ml2_type_vlan]
network_vlan_ranges = vlan:3001:4000


[linux_bridge]
physical_interface_mappings = vlan:ens192


2.重启neutron

stack@openstack-controller:~$ sudo systemctl restart devstack@q*


3.创建vlan100

stack@openstack-controller:/tmp$ openstack network create --provider-physical-network vlan --provider-network-type vlan --project admin vlan100

OpenStack实践(五):Linux Bridge方式实现Load Balance


4.创建子网

创建子网subnet172.27.100.0

stack@openstack-controller:/tmp$ openstack subnet create --network vlan100 --subnet-range 172.27.100.0/24 --gateway 172.27.100.1 subnet172.27.100.0

OpenStack实践(五):Linux Bridge方式实现Load Balance


5.查看创建的网络

OpenStack实践(五):Linux Bridge方式实现Load Balance


二、创建实例centos01

1.上传介质

上传介质CentOS-7-x86_64-GenericCloud-1503.qcow2c至/tmp目录,下载地址:http://cloud.centos.org/centos/7/images/


2.制作镜像

root@openstack-controller:~# su - stack
stack@openstack-controller:~$ source devstack/openrc admin admin
stack@openstack-controller:/tmp$ openstack image create "centos7"   --file CentOS-7-x86_64-GenericCloud-1503.qcow2c  --disk-format qcow2 --container-format bare   --public

OpenStack实践(五):Linux Bridge方式实现Load Balance


3.新建秘钥centos

使用stack用户分别新建秘钥对centos

stack@openstack-controller:~/key$ ssh-keygen  -t rsa -f centos.key
stack@openstack-controller:~/key$ more centos.pub

OpenStack实践(五):Linux Bridge方式实现Load Balance


4.导入秘钥

将公钥导入

OpenStack实践(五):Linux Bridge方式实现Load Balance

OpenStack实践(五):Linux Bridge方式实现Load Balance

创建实例后,使用私钥来登录实例


5.查看实例类型

stack@openstack-controller:~$ nova flavor-list

OpenStack实践(五):Linux Bridge方式实现Load Balance

实例类型选择m1.small


6.查看镜像

stack@openstack-controller:~$ glance image-list

OpenStack实践(五):Linux Bridge方式实现Load Balance

选择centos7


7.查看主机名和zone

stack@openstack-controller:~$ nova service-list

OpenStack实践(五):Linux Bridge方式实现Load Balance

本文选择控制节点luanch实例


8.查看网络

stack@openstack-controller:~$ openstack network list

OpenStack实践(五):Linux Bridge方式实现Load Balance

选择新建的vlan100


9.查看密钥对

stack@openstack-controller:~/key$ nova keypair-list

OpenStack实践(五):Linux Bridge方式实现Load Balance

新建的实例centos01使用秘钥centos


10.新建实例centos01

stack@openstack-controller:~/key$ nova boot --flavor m1.small --image centos7  --availability-zone nova:openstack-controller --nic net-name=vlan100 --key-name centos centos01


11.查看新建实例

OpenStack实践(五):Linux Bridge方式实现Load Balance


三、新建安全组

1.编辑默认安全组

OpenStack实践(五):Linux Bridge方式实现Load Balance


2.新增规则

新增规则允许ping、ssh和80端口访问

OpenStack实践(五):Linux Bridge方式实现Load Balance


四、配置float ip
外网访问配置

1.配置ml2_conf.ini

控制节点配置ml2_conf.ini

stack@openstack-controller:~$ view /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2_type_flat]
flat_networks = externaltt


[ml2_type_vlan]
network_vlan_ranges = vlan:3001:4000

[linux_bridge]
physical_interface_mappings = vlan:ens192,externaltt:ens224


2.重启网络

stack@openstack-controller:~$  sudo systemctl restart devstack@q*

由于本文外网环境为flat网络(物理机的网卡接在交换机的access口),此处外网配置选择flat,对应网卡ens224,虚拟机内网为vlan,对应网卡ens192。


3.创建ext_net_flat

OpenStack实践(五):Linux Bridge方式实现Load Balance


4.创建子网

OpenStack实践(五):Linux Bridge方式实现Load Balance


5.不勾选dhcp

OpenStack实践(五):Linux Bridge方式实现Load Balance


6.查看创建的外网

172.27.34.0该网段需能访问外网。

OpenStack实践(五):Linux Bridge方式实现Load Balance


新建路由

1.新建路由router100

OpenStack实践(五):Linux Bridge方式实现Load Balance

外部网络选择ext_net_flat,将外网连接至虚拟路由器

此时会新增接口,ip为172.27.34.6

OpenStack实践(五):Linux Bridge方式实现Load Balance


2.新增接口

OpenStack实践(五):Linux Bridge方式实现Load Balance


创建floating ip

1.分配浮动ip

floating ip提供静态NAT功能,配置在router提供网关的外网interface上。

OpenStack实践(五):Linux Bridge方式实现Load Balance


2.关联实例

创建浮动ip172.27.34.4,并分别与实例centos01关联

OpenStack实践(五):Linux Bridge方式实现Load Balance


五、新建实例centos02

实例centos02以centos01快照方式启动

配置实例centos01

1.登陆centos01

登陆实例并修改密码

stack@openstack-controller:~/key$ sudo ssh -i  centos.key centos@172.27.34.4

OpenStack实践(五):Linux Bridge方式实现Load Balance


2.修改配置文件sshd_config

[root@centos01 ~]# view /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes


3.重启sshd

[root@centos01 ~]# service sshd restart
Redirecting to /bin/systemctl restart  sshd.service

此时可以远程访问实例了


4.关闭selinux

[root@centos01 ~]# setenforce 0
[root@centos01 ~]# sed -i 's/^ *SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

重启后永久生效


5.配置源

[root@centos01 ~]# yum -y install wget
[root@centos01 ~]# cd /etc/yum.repos.d/
[root@centos01 yum.repos.d]# mkdir repo_bak && mv *.repo repo_bak/
[root@centos01 yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo


6.安装apache服务并配置

[root@centos01 ~]# yum -y install httpd
[root@centos01 ~]# systemctl start httpd
[root@centos01 ~]# systemctl enable httpd
[root@centos01 ~]# echo web01-172.27.100.17 >/var/www/html/index.html


7.访问centos01

访问http://172.27.34.4/

OpenStack实践(五):Linux Bridge方式实现Load Balance


创建实例centos02

1.创建快照

OpenStack实践(五):Linux Bridge方式实现Load Balance

根据实例centos01创建快照centos


2.由镜像启动实例

OpenStack实践(五):Linux Bridge方式实现Load Balance

由镜像centos启动实例centos02

OpenStack实践(五):Linux Bridge方式实现Load Balance

OpenStack实践(五):Linux Bridge方式实现Load Balance

网络、实例类型等和centos01保持一致


3.配置centos02

参照centos01配置,关联vip,连接centos02进行相关配置

OpenStack实践(五):Linux Bridge方式实现Load Balance


4.访问centos02

访问http://172.27.34.5/

OpenStack实践(五):Linux Bridge方式实现Load Balance

六、配置lbaas

查看Octavia服务

本文以Octavia方式实现lbaas,从Pike版本开始,Octavia就可以作为独立的Keystone服务而不再是Neutron的一个service plugin。

stack@openstack-controller:~$ openstack service list

OpenStack实践(五):Linux Bridge方式实现Load Balance


Load Balancers配置

1.创建Load Balancers

新建Load Balancer 4,子网选择内网subnet172.27.100.0

OpenStack实践(五):Linux Bridge方式实现Load Balance


2.配置Listener

Listener的协议选择HTTP,端口默认为80

OpenStack实践(五):Linux Bridge方式实现Load Balance

OpenStack实践(五):Linux Bridge方式实现Load Balance


3.配置Pool

Pool的方法为round_robin

OpenStack实践(五):Linux Bridge方式实现Load Balance

OpenStack实践(五):Linux Bridge方式实现Load Balance


4.加入pool members

将centos01和centos02加入pool

OpenStack实践(五):Linux Bridge方式实现Load Balance

OpenStack实践(五):Linux Bridge方式实现Load Balance


5.新建monitor

OpenStack实践(五):Linux Bridge方式实现Load Balance

OpenStack实践(五):Linux Bridge方式实现Load Balance


6.分配浮动ip

OpenStack实践(五):Linux Bridge方式实现Load Balance

OpenStack实践(五):Linux Bridge方式实现Load Balance

将浮动ip172.27.34.11分配给load balance做vip


7.查看新建的Load Balancers

查看vip

OpenStack实践(五):Linux Bridge方式实现Load Balance

查看实例

OpenStack实践(五):Linux Bridge方式实现Load Balance


8.访问测试

在计算节点访问vip

root@openstack-computer:~# for i in {1..10};do sleep 5; curl http://172.27.34.11; done

OpenStack实践(五):Linux Bridge方式实现Load Balance

访问vip,发现以轮询方式分别访问后端的web服务器,结果符合预期。



相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...