OpenStack實踐(五):Linux Bridge方式實現Load Balance

環境:

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


拓撲圖:

圖片.png


目標:

外網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

圖片.png


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

圖片.png


5.查看創建的網絡

圖片.png


二、創建實例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

圖片.png


3.新建祕鑰centos

使用stack用戶分別新建祕鑰對centos

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

圖片.png


4.導入祕鑰

將公鑰導入

圖片.png

圖片.png

創建實例後,使用私鑰來登錄實例


5.查看實例類型

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

圖片.png

實例類型選擇m1.small


6.查看鏡像

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

圖片.png

選擇centos7


7.查看主機名和zone

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

圖片.png

本文選擇控制節點luanch實例


8.查看網絡

stack@openstack-controller:~$ openstack network list

圖片.png

選擇新建的vlan100


9.查看密鑰對

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

圖片.png

新建的實例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.查看新建實例

圖片.png


三、新建安全組

1.編輯默認安全組

圖片.png


2.新增規則

新增規則允許ping、ssh和80端口訪問

圖片.png


四、配置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

圖片.png


4.創建子網

圖片.png


5.不勾選dhcp

圖片.png


6.查看創建的外網

172.27.34.0該網段需能訪問外網。

圖片.png


新建路由

1.新建路由router100

圖片.png

外部網絡選擇ext_net_flat,將外網連接至虛擬路由器

此時會新增接口,ip爲172.27.34.6

圖片.png


2.新增接口

圖片.png


創建floating ip

1.分配浮動ip

floating ip提供靜態NAT功能,配置在router提供網關的外網interface上。

圖片.png


2.關聯實例

創建浮動ip172.27.34.4,並分別與實例centos01關聯

圖片.png


五、新建實例centos02

實例centos02以centos01快照方式啓動

配置實例centos01

1.登陸centos01

登陸實例並修改密碼

stack@openstack-controller:~/key$ sudo ssh -i  centos.key [email protected]

圖片.png


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/

圖片.png


創建實例centos02

1.創建快照

圖片.png

根據實例centos01創建快照centos


2.由鏡像啓動實例

圖片.png

由鏡像centos啓動實例centos02

圖片.png

圖片.png

網絡、實例類型等和centos01保持一致


3.配置centos02

參照centos01配置,關聯vip,連接centos02進行相關配置

圖片.png


4.訪問centos02

訪問http://172.27.34.5/

圖片.png

六、配置lbaas

查看Octavia服務

本文以Octavia方式實現lbaas,從Pike版本開始,Octavia就可以作爲獨立的Keystone服務而不再是Neutron的一個service plugin。

stack@openstack-controller:~$ openstack service list

圖片.png


Load Balancers配置

1.創建Load Balancers

新建Load Balancer 4,子網選擇內網subnet172.27.100.0

圖片.png


2.配置Listener

Listener的協議選擇HTTP,端口默認爲80

圖片.png

圖片.png


3.配置Pool

Pool的方法爲round_robin

圖片.png

圖片.png


4.加入pool members

將centos01和centos02加入pool

圖片.png

圖片.png


5.新建monitor

圖片.png

圖片.png


6.分配浮動ip

圖片.png

圖片.png

將浮動ip172.27.34.11分配給load balance做vip


7.查看新建的Load Balancers

查看vip

圖片.png

查看實例

圖片.png


8.訪問測試

在計算節點訪問vip

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

圖片.png

訪問vip,發現以輪詢方式分別訪問後端的web服務器,結果符合預期。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章