首页 > 代码库 > openstack octavia 手工安装

openstack octavia 手工安装

openstack octavia 是 openstack lbaas的支持的一种后台程序,提供为虚拟机流量的负载均衡。实质是类似于trove,调用 nove 以及neutron的api生成一台安装好haproxy软件的虚拟机,并连接到要目标网路。具体原理和devstack安装方法 参考

http://lingxiankong.github.io/blog/2016/03/30/octavia/?utm_source=tuicool&utm_medium=referral

http://docs.openstack.org/developer/devstack/guides/devstack-with-lbaas-v2.html


目前官方不提供安装文档。谷歌了下似乎也没人写过具体的安装步骤,只推荐用devstack来进行安装。本人尝试根据devstack的安装脚本总结了下安装octavia的步骤,不当之处请各位指正。

1、创建数据库

mysql> CREATE DATABASE octavia;
mysql> GRANT ALL PRIVILEGES ON octavia.* TO ‘octavia‘@‘localhost‘  IDENTIFIED BY ‘OCTAVIA_DBPASS‘;mysql> GRANT ALL PRIVILEGES ON octavia.* TO ‘octavia‘@‘%‘ \  IDENTIFIED BY ‘OCTAVIA_DBPASS‘;

2 创建用户 角色 endpoint

openstack user create --domain default --password-prompt octavia
openstack role add --project service --user cinder admin
openstack endpoint create octavia public http://10.1.65.58:9876/ --region RegionOne 
openstack endpoint create octavia admin http://10.1.65.58:9876/ --region RegionOne 
openstack endpoint create octavia internal http://10.1.65.58:9876/ --region RegionOne

3 安装软件包


yum install openstack-octavia-worker openstack-octavia-api python-octavia openstack-octavia openstack-octavia openstack-octavia

4 导入镜像 镜像是从devstack 生成的系统中导出来的

openstack --os-cloud=devstack-admin --os-region-name=RegionOne image create amphora-x64-haproxy --public --container-format=bare --disk-format qcow2

5 创建管理网络,并在主机创建ovs端口,使octavia-worker,octavia-housekeeping,octavia-health-manager能和生成的虚拟机实例通讯

 5.1 生成管理网络,网段

openstack network create lb-mgmt-net
openstack subnet create --subnet-range 192.168.0.0/24 --allocation-pool       start=192.168.0.2,end=192.168.0.200 --network lb-mgmt-net lb-mgmt-subnet


5.2 生成管理端口防火墙规则 

5555端口是管理网络,考虑到octavia组件尚不成熟,开启了22端口,镜像本身也是开启了22端口,这点吐槽下trove,同样是不成熟的模块,默认不开启22端口,还得去改源码。

openstack security group create lb-mgmt-sec-grp
openstack security group rule create --protocol udp --dst-port 5555 lb-health-mgr-sec-grp
openstack security group rule create --protocol tcp --dst-port 22 lb-mgmt-sec-grp


5.3 在管理网络创建一个端口用于连接宿主机中的octavia health_manager

neutron port-create --name octavia-health-manager-standalone-listen-port --security-group lb-health-mgr-sec-grp --device-owner Octavia:health-mgr --binding:host_id=controller lb-mgmt-net

5.4 创建宿主机的ovs端口 并连接至5.1生成的网络

ovs-vsctl -- --may-exist add-port br-int o-hm0 -- set Interface o-hm0 type=internal -- set Interface o-hm0 external-ids:iface-status=active -- set Interface o-hm0 external-ids:attached-mac=fa:16:3e:6f:9f:9a -- set Interface o-hm0 external-ids:iface-id=457e4953-b2d6-49ee-908b-2991506602b2

其中iface-id 和attached-mac 为 5.3生成的port的 属性

ip link set dev o-hm0 address fa:16:3e:6f:9f:9a

5.5 在宿主机上创建dhcp (为啥不用传统的dnsmasq呢?)

dhclient -v o-hm0 -cf /etc/octavia/dhcp/dhclient.conf



openstack octavia 手工安装