OpenStack DevStack 集成 Octavia 负载均衡服务部署指南
概述
本文将详细介绍如何在 OpenStack DevStack 开发环境中集成 Octavia 负载均衡服务。Octavia 自 OpenStack Pike 版本起已成为独立的负载均衡服务,为 OpenStack 提供强大的负载均衡能力。
环境准备
硬件要求
- 建议使用至少 8GB 内存的虚拟机
- 最小 16GB 磁盘空间
- 推荐启用 KVM 虚拟化而非 QEMU
- 确保启用嵌套虚拟化
系统配置建议
在 local.conf 中添加以下配置可优化性能:
LIBVIRT_CPU_MODE="host-passthrough"
安装与配置
1. 基础环境搭建
- 克隆 DevStack 代码库:
git clone https://opendev.org/openstack/devstack
- 创建 stack 用户并设置权限:
cd devstack/tools
sudo ./create-stack-user.sh
cd ../..
sudo mv devstack /opt/stack
sudo chown -R stack.stack /opt/stack/devstack
2. 配置 local.conf
以下是推荐的 Octavia 集成配置模板:
[[local|localrc]]
# 基础认证配置
DATABASE_PASSWORD=password
ADMIN_PASSWORD=password
SERVICE_PASSWORD=password
SERVICE_TOKEN=password
RABBIT_PASSWORD=password
# 服务启用配置
enable_service rabbit
enable_plugin neutron $GIT_BASE/openstack/neutron
enable_service q-qos
enable_service placement-api placement-client
# Octavia 相关配置
enable_plugin octavia $GIT_BASE/openstack/octavia master
enable_plugin octavia-dashboard $GIT_BASE/openstack/octavia-dashboard
enable_plugin ovn-octavia-provider $GIT_BASE/openstack/ovn-octavia-provider
enable_plugin octavia-tempest-plugin $GIT_BASE/openstack/octavia-tempest-plugin
enable_service octavia o-api o-cw o-hm o-hk o-da
# 可选配置项
# OCTAVIA_AMP_BASE_OS=centos
# OCTAVIA_AMP_DISTRIBUTION_RELEASE_ID=9-stream
# OCTAVIA_AMP_IMAGE_SIZE=3
# OCTAVIA_LB_TOPOLOGY=ACTIVE_STANDBY
# OCTAVIA_ENABLE_AMPHORAV2_JOBBOARD=True
3. 运行 DevStack
sudo su - stack
cd /opt/stack/devstack
./stack.sh
. ./openrc
测试环境搭建
1. 创建测试实例
# 创建两个测试实例
openstack server create --image $(openstack image list | awk '/ cirros-.*-x86_64-.* / {print $2}') \
--flavor 1 --nic net-id=$(openstack network list | awk '/ private / {print $2}') node1
openstack server create --image $(openstack image list | awk '/ cirros-.*-x86_64-.* / {print $2}') \
--flavor 1 --nic net-id=$(openstack network list | awk '/ private / {print $2}') node2
# 配置安全组规则
openstack security group rule create default --protocol icmp
openstack security group rule create default --protocol tcp --dst-port 22:22
openstack security group rule create default --protocol tcp --dst-port 80:80
2. 部署测试 Web 服务
使用 Octavia 项目中的 Go 测试服务器:
# 将测试服务器复制到实例并运行
INST_IP=<instance IP>
scp -O test_server.bin cirros@${INST_IP}:
ssh -f cirros@${INST_IP} ./test_server.bin -id ${INST_IP}
Octavia 负载均衡配置
1. 创建负载均衡器
openstack loadbalancer create --wait --name lb1 --vip-subnet-id private-subnet
2. 配置监听器与池
openstack loadbalancer listener create --wait --protocol HTTP --protocol-port 80 --name listener1 lb1
openstack loadbalancer pool create --wait --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP --name pool1
3. 添加健康检查与成员
openstack loadbalancer healthmonitor create --wait --delay 5 --timeout 2 --max-retries 1 --type HTTP pool1
openstack loadbalancer member create --wait --subnet-id private-subnet --address <web server 1 address> --protocol-port 80 pool1
openstack loadbalancer member create --wait --subnet-id private-subnet --address <web server 2 address> --protocol-port 80 pool1
测试验证
# 获取负载均衡器 VIP 地址
openstack loadbalancer show lb1
# 测试负载均衡
curl http://<vip_address>
预期结果应轮询显示两个后端服务器的响应信息。
高级配置选项
- 拓扑结构:可通过
OCTAVIA_LB_TOPOLOGY配置 ACTIVE_STANDBY 模式 - Amphora 配置:支持自定义基础镜像和大小
- TLS 卸载:可集成 Barbican 服务实现 HTTPS 负载均衡
常见问题排查
- 性能问题:确保使用 KVM 而非 QEMU,并启用嵌套虚拟化
- 网络问题:检查安全组规则是否正确配置
- 服务状态:使用
openstack loadbalancer status show lb1查看详细状态
通过本文指南,您已成功在 DevStack 环境中部署了完整的 Octavia 负载均衡服务,并完成了基础功能的测试验证。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



