Centos8部署Octavia

Octavia是旨在与OpenStack一起使用的开源,运营商规模的负载平衡解决方案。

Octavia诞生于Neutron LBaaS项目。当Neutron LBaaS从版本1迁移到版本2时,其概念影响了Neutron LBaaS项目的转型。从OpenStack的Liberty版本开始,Octavia已成为Neutron LBaaS版本2的参考实现。

Octavia通过管理一组虚拟机,容器或裸机服务器(统称为amphorae)来完成其负载平衡服务的交付,并按需启动。这种按需的水平扩展功能将Octavia与其他负载平衡解决方案区分开来,从而使Octavia真正适合“适用于云”。

openstack octavia 是 openstack lbaas的支持的一种后台程序,提供为虚拟机流量的负载均衡。实质是类似于trove,调用 nove 以及neutron的api生成一台安装好haproxy和keepalived软件的虚拟机,并连接到目标网路。octavia共有5个组件 housekeeping,worker,api,health-manager,octavia agent。

注:如各节点重启后需重新配置o-hm0网卡ip和mac
一、创建数据库
mysql -uroot -p123456
CREATE DATABASE octavia;
GRANT ALL PRIVILEGES ON octavia.* TO ‘octavia’@‘localhost’ IDENTIFIED BY ‘123456’;
GRANT ALL PRIVILEGES ON octavia.* TO ‘octavia’@’%’ IDENTIFIED BY ‘123456’;
flush privileges;
exit;

二、安装软件包
yum -y install
openstack-octavia-api.noarch
openstack-octavia-common.noarch
openstack-octavia-health-manager.noarch
openstack-octavia-housekeeping.noarch
openstack-octavia-worker.noarch
python3-octaviaclient.noarch

三、创建keystone认证体系(用户、角色、endpoint)
openstack user create --domain default --password 123456 octavia
openstack role add --project service --user octavia admin
openstack service create load-balancer --name octavia
openstack endpoint create octavia public http://controller1:9876 --region RegionOne
openstack endpoint create octavia admin http://controller1:9876 --region RegionOne
openstack endpoint create octavia internal http://controller1:9876 --region RegionOne

四、导入Amphora镜像,按需求创建实例类型
wget https://tarballs.opendev.org/openstack/octavia/test-images/test-only-amphora-x64-haproxy-centos-8.qcow2
# source service octavia的环境变量
export OS_USERNAME=octavia
export OS_PASSWORD=123456
export OS_PROJECT_NAME=service
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller1:5000/v3
export OS_IDENTITY_API_VERSION=3
# 上传镜像(file+文件路径)
openstack image create amphora-x64-haproxy --public --container-format=bare --disk-format qcow2 --file test-only-amphora-x64-haproxy-centos-8.qcow2 --tag amphora
# 创建实例类型
openstack flavor create --ram 4096 --disk 50 --vcpus 2 flavor

五、创建安全组
# Amphora 虚拟机使用,LB Network 与 Amphora 通信,分别为service下的安全组添加规则
openstack security group create lb-mgmt-sec-grp --project service
openstack security group rule create --protocol udp --dst-port 5555 lb-mgmt-sec-grp
openstack security group rule create --protocol tcp --dst-port 22 lb-mgmt-sec-grp
openstack security group rule create --protocol tcp --dst-port 9443 lb-mgmt-sec-grp
openstack security group rule create --protocol icmp lb-mgmt-sec-grp

openstack security group create lb-health-mgr-sec-grp --project service
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-health-mgr-sec-grp
openstack security group rule create --protocol tcp --dst-port 9443 lb-health-mgr-sec-grp

六、创建管理网络(注意要指定租户)
# 租户网络实际也就是自助网络
# 这里生成的网络的ip与mac为下面所需参数
openstack network create lb-mgmt-net --project service
openstack subnet create --subnet-range 192.168.0.0/24 --allocation-pool start=192.168.0.2,end=192.168.0.100 --network lb-mgmt-net lb-mgmt-subnet

七、创建管理端口
openstack port create octavia-health-manager-standalone-listen-port
–security-group lb-health-mgr-sec-grp
–device-owner Octavia:health-mgr
–host --network lb-mgmt-net
–project service
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=
– set Interface o-hm0 external-ids:iface-id=

八、为管理端口设置ip(Health Manager 监听端口设置 IP)
ip link set dev o-hm0 address
ip addr add <Health Manager Listen Port IP/24> dev o-hm0 #<>处是添加ip和子网
ip link set dev o-hm0 up #启动网卡使配置生效

九、生成octavia controller与amphora通信的证书
# 可参考官方文档[https://docs.openstack.org/octavia/latest/admin/guides/certificates.html]
# 注意,以下所有让输入pass密码的,直接输入123456回车
# 让输入其他参数的直接回车
# openssl version -a 查看openssl文件路径


cd /home
mkdir certs
chmod 700 certs
cd certs
cp /home/octavia/bin/openssl.cnf ./  #建议备份openssl.cnf后直接复制官网配置文件
mkdir client_ca
mkdir server_ca
cd server_ca
mkdir certs crl newcerts private
chmod 700 private
touch index.txt
echo 1000 > serial
openssl genrsa -aes256 -out private/ca.key.pem 4096
chmod 400 private/ca.key.pem
openssl req -config ../openssl.cnf -key private/ca.key.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out certs/ca.cert.pem
cd ../client_ca
mkdir certs crl csr newcerts private
chmod 700 private
touch index.txt
echo 1000 > serial
openssl genrsa -aes256 -out private/ca.key.pem 4096
chmod 400 private/ca.key.pem
openssl req -config ../openssl.cnf -key private/ca.key.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out certs/ca.cert.pem
openssl genrsa -aes256 -out private/client.key.pem 2048
openssl req -config ../openssl.cnf -new -sha256 -key private/client.key.pem -out csr/client.csr.pem
openssl ca -config ../openssl.cnf -extensions usr_cert -days 7300 -notext -md sha256 -in csr/client.csr.pem -out certs/client.cert.pem
openssl rsa -in private/client.key.pem -out private/client.cert-and-key.pem
cat certs/client.cert.pem >> private/client.cert-and-key.pem
cd ..
mkdir /etc/octavia/certs
chmod 700 /etc/octavia/certs
cp server_ca/private/ca.key.pem /etc/octavia/certs/server_ca.key.pem
chmod 700 /etc/octavia/certs/server_ca.key.pem
cp server_ca/certs/ca.cert.pem /etc/octavia/certs/server_ca.cert.pem
cp client_ca/certs/ca.cert.pem /etc/octavia/certs/client_ca.cert.pem
cp client_ca/private/client.cert-and-key.pem /etc/octavia/certs/client.cert-and-key.pem
chmod 700 /etc/octavia/certs/client.cert-and-key.pem
chown -R octavia.octavia /etc/octavia/certs


十、创建密钥对
mkdir -p /etc/octavia/.ssh
ssh-keygen -b 2048 -t rsa -N “” -f /etc/octavia/.ssh/octavia_ssh_key
nova keypair-add --pub-key=/etc/octavia/.ssh/octavia_ssh_key.pub octavia_ssh_key --user {octavia_user_id}

十一、修改配置文件
#/etc/octavia/octavia.conf
# 直接填写ip
[DEFAULT]
transport_url = rabbit://openstack:openstack@controller1:5672,openstack:openstack@controller2:5672,openstack:openstack@controller3:5672
[api_settings]
bind_host = 172.27.125.201
bind_port = 9876
api_handler = queue_producer
auth_strategy = keystone
[database]
connection = mysql+pymysql://octavia:123456@controller1:3306/octavia
[health_manager]
bind_ip = 192.168.0.12
bind_port = 5555
controller_ip_port_list = 192.168.0.12:5555, 192.168.0.*:5555, <ha环境需填写其余节点的网卡ip:端口>
heartbeat_key = insecure
[keystone_authtoken]
auth_uri = http://172.27.125.106:5000
auth_url = http://172.27.125.106:5000
memcached_servers = controller1:11211,controller2:11211,controller3:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = octavia
password = 123456
[certificates]
cert_generator = local_cert_generator
ca_private_key_passphrase = 123456
ca_private_key = /etc/octavia/certs/server_ca.key.pem
ca_certificate = /etc/octavia/certs/server_ca.cert.pem
[haproxy_amphora]
client_cert = /etc/octavia/certs/client.cert-and-key.pem
server_ca = /etc/octavia/certs/server_ca.cert.pem
key_path = /etc/octavia/.ssh/octavia_ssh_key
base_path = /var/lib/octavia
base_cert_dir = /var/lib/octavia/certs
connection_max_retries = 5500
connection_retry_interval = 5
rest_request_conn_timeout = 10
rest_request_read_timeout = 120
[controller_worker]
client_ca = /etc/octavia/certs/client_ca.cert.pem
amp_image_tag = amphora <openstack image list查看第三步上传镜像时的tag标签>
amp_image_owner_id = 22d71ab1b5b548f7b076b61e7c3ed7dc <openstack image show查看第三步创建镜像的owner id(请注意是owner的id)>
amp_flavor_id = c6cc5162-26cb-4e98-aa49-efb3eb369eb2 <openstack flavor list查看第三步创建的实例类型id>
amp_secgroup_list = 0428056a-f1fb-457e-bd33-c2d23eb6d2cd <openstack security group list查看第五步创建的lb-mgmt-sec-grp id>
amp_boot_network_list = 450227cc-11e8-4422-8bf5-540ef5cb2dfe <openstack network list查看第六步创建的lb-mgmt-net id>
amp_ssh_key_name = octavia_ssh_key
network_driver = allowed_address_pairs_driver
compute_driver = compute_nova_driver
amphora_driver = amphora_haproxy_rest_driver
workers = 2 #物理环境下可以不用配置此项,如果在虚拟机环境中部署可适当调整下面两个参数
amp_active_retries = 100 #物理环境下可以不用配置此项
amp_active_wait_sec = 2 #物理环境下可以不用配置此项
loadbalancer_topology = ACTIVE_STANDBY
[oslo_messaging]
topic = octavia_prov
rpc_thread_pool_size = 2
[house_keeping]
load_balancer_expiry_age = 3600
amphora_expiry_age = 3600
[service_auth]
memcached_servers = controller1:11211,controller2:11211,controller3:11211
project_domain_name = default
project_name = service
user_domain_name = default
password = 123456
username = octavia
auth_type = password
auth_url = http://172.27.125.106:5000
auth_uri = http://172.27.125.106:5000

十二、初始化octavia数据库
octavia-db-manage upgrade head

十三、启动服务
#重启octavia各组件
(如果使用httpd纳管octavia-api,就需要stop并disable octavia-api防止octavia发生端口冲突)——httpd纳管octavia-api
systemctl restart octavia-api.service
systemctl restart octavia-worker.service
systemctl restart octavia-health-manager.service
systemctl restart octavia-housekeeping.service

#设为开机启动
systemctl enable octavia-api.service
systemctl enable octavia-worker.service
systemctl enable octavia-health-manager.service
systemctl enable octavia-housekeeping.service

十四、添加 Load Balancers 页面

# 部署horizon后再进行这一步骤
# git下载源码,并使用readme中的安装命令

git clone https://github.com/openstack/octavia-dashboard.git -b stable/ussuri
cd octavia_file/octavia-dashboard
python setup.py install
cd octavia_dashboard/enabled/
cp _1482_project_load_balancer_panel.py /usr/share/openstack-dashboard/openstack_dashboard/enabled/
cd /usr/share/openstack-dashboard
./manage.py collectstatic
./manage.py compress
systemctl restart httpd

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS系统上安装Octavia的具体步骤如下: 1. 首先,使用以下命令安装Octavia软件包: ``` yum -y install openstack-octavia-api.noarch openstack-octavia-common.noarch openstack-octavia-health-manager.noarch openstack-octavia-housekeeping.noarch openstack-octavia-worker.noarch python3-octaviaclient.noarch ``` 这将安装Octavia的API、常用组件、健康管理器、清理组件、工作组件和Octavia客户端。 2. 接下来,使用OpenSSL创建CA中心。执行以下命令: ``` source /opt/rocky/octavia/bin/create_certificates.sh /etc/octavia/certs/ /opt/rocky/octavia/etc/certificates/openssl.cnf ``` 这将使用OpenSSL创建CA中心所需的证书。 3. Octavia使用特定的镜像启动Amphora实例。你可以使用Octavia提供的镜像制作脚本来创建镜像。Octavia支持CentOS和Ubuntu两种操作系统,并且可以设置密码。然而,在生成环境中,建议使用keypair登录。 以上就是在CentOS系统上安装Octavia的具体步骤。请按照这些步骤进行操作。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [OpenStack Octavia(Rocky)的实现与分析](https://blog.csdn.net/Jmilk/article/details/84338419)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Centos8部署Octavia](https://blog.csdn.net/Casual_Lei/article/details/115561185)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值