保姆级避坑指南:用Kolla-Ansible给OpenStack集群(2025.1)扩容计算节点,从网络检查到服务上线

张开发
2026/4/8 6:08:04 15 分钟阅读

分享文章

保姆级避坑指南:用Kolla-Ansible给OpenStack集群(2025.1)扩容计算节点,从网络检查到服务上线
2025.1版OpenStack集群扩容实战Kolla-Ansible计算节点无缝接入避坑手册当你的OpenStack集群开始承载生产业务时横向扩展计算节点几乎是每个运维团队都会面临的挑战。不同于初始部署在已有集群中动态添加节点需要更精细的网络检查、更严格的权限控制以及对现有服务零影响的平滑过渡。本文将带你完整走通从服务器上架到服务就绪的全链路特别针对Kolla-Ansible 2025.1版本中那些容易踩坑的细节。1. 扩容前的网络拓扑验证新增计算节点最常出现的问题往往来自网络层配置。在开始任何安装前我们需要确保新节点假设主机名为server4的网络接口与现有集群保持完全一致的拓扑结构。1.1 物理网络连通性测试先准备一个增强版网络测试脚本保存为network_validate.sh#!/bin/bash # 双网卡拓扑验证工具 # 用法./network_validate.sh 管理网卡 外部网卡 管理网段网关 外部网段网关 MGMT_IFACE$1 EXT_IFACE$2 MGMT_GW$3 EXT_GW$4 function test_interface() { local iface$1 local gw$2 local temp_ip$(ip -o -4 addr show dev $iface | awk {print $4} | cut -d/ -f1) echo **验证 $iface 连通性** ping -c 3 -I $iface $gw /dev/null 21 \ echo ✅ 网关可达 || echo ❌ 网关不可达 echo **MTU值检测** current_mtu$(cat /sys/class/net/$iface/mtu) (( current_mtu 1500 )) \ echo ✅ MTU $current_mtu 正常 || echo ⚠️ MTU $current_mtu 可能偏小 echo **VLAN标签检查** ip -d link show $iface | grep -q vlan protocol \ echo ⚠️ 检测到VLAN标签 || echo ✅ 无VLAN配置 }执行示例chmod x network_validate.sh ./network_validate.sh eno1 eno2 10.9.61.1 10.9.62.11.2 关键网络参数对照表检查项现有节点示例值新节点实测值合规要求管理网络MTU15001500必须完全相同外部网络MTU90009000建议大于1500网卡驱动版本ixgbe 5.15.0ixgbe 5.15.0大版本需一致物理连接状态UP/LOWER_UPUP/LOWER_UP必须为双UP状态VLAN配置无无需与设计一致特别注意如果现有集群使用了特殊网络配置如OVS-DPDK需要额外检查DPDK驱动版本和巨页内存配置。2. 系统环境标准化配置2.1 基础依赖安装在新节点上执行以下标准化准备# 禁用不必要的服务 sudo systemctl mask --now cloud-init cloud-config # 安装核心依赖 sudo apt update sudo apt install -y \ python3-dev \ libffi-dev \ gcc \ libssl-dev \ ntpdate \ chrony # 时间同步配置关键 sudo chronyc -a burst 4/4 sudo chronyc -a makestep2.2 内核参数调优创建/etc/sysctl.d/99-openstack.conf文件# 连接跟踪表大小 net.nf_conntrack_max1000000 # 网络性能优化 net.core.rmem_max16777216 net.core.wmem_max16777216 net.ipv4.tcp_rmem4096 87380 16777216 net.ipv4.tcp_wmem4096 65536 16777216 # 虚拟化相关 vm.swappiness10 vm.dirty_ratio40 vm.dirty_background_ratio10应用配置sudo sysctl -p /etc/sysctl.d/99-openstack.conf3. Kolla-Ansible清单深度配置3.1 动态清单管理技巧采用分层式清单结构更利于维护inventory/ ├── production │ ├── group_vars │ │ └── compute.yml │ └── host_vars │ ├── server1.yml │ └── server4.yml └── stages └── preprodhost_vars/server4.yml典型配置--- ansible_host: 10.9.61.14 network_interface: eno1 neutron_external_interface: eno2 # 计算节点专属配置 nova_reserved_host_memory: 4096 nova_vcpu_pin_set: 4-313.2 安全加固措施SSH连接优化# 在控制节点生成专属密钥对 ssh-keygen -t ed25519 -f ~/.ssh/kolla_server4 -N # 限制密钥用途 echo -n command/usr/bin/sudo /usr/bin/docker exec -i kolla_toolbox ... | \ tee -a ~/.ssh/authorized_keys ~/.ssh/kolla_server4.pub防火墙例外规则sudo ufw allow from 10.9.61.0/24 to any port 22 proto tcp sudo ufw allow from 10.9.61.10 to any port 6789 proto tcp4. 分阶段部署实战4.1 预检阶段关键命令# 针对性预检建议保存输出日志 kolla-ansible prechecks -i inventory/production --limit server4 | tee /var/log/kolla/server4-precheck.log # 常见问题处理 # 若出现Missing kernel module警告执行 sudo modprobe br_netfilter sudo modprobe ebtables4.2 分步部署策略基础服务部署kolla-ansible deploy -i inventory/production \ --tags common,neutron,nova-compute \ --limit server4组件验证# 检查Nova计算服务 docker exec -it nova_compute nova-status upgrade check # 验证Neutron代理 docker exec -it neutron_agent ovs-vsctl show4.3 后期集成测试创建测试实例验证新节点openstack server create --flavor small \ --image cirros-0.6.3 \ --availability-zone nova:server4 \ test-instance-server4关键验证点实例能否正常启动网络连通性测试控制台日志是否正常迁移功能测试5. 典型故障排除指南5.1 网络类问题症状实例启动后无法获取IP排查步骤检查OVS网桥配置docker exec neutron_agent ovs-vsctl list-br docker exec neutron_agent ovs-vsctl list-ports br-int验证DHCP命名空间docker exec neutron_agent ip netns exec qdhcp-net-id ip a5.2 权限类问题症状容器启动时报AppArmor权限拒绝解决方案# 临时方案 sudo aa-complain /etc/apparmor.d/* # 永久方案 echo profile docker-default flags(complain) | \ sudo tee /etc/apparmor.d/docker sudo systemctl restart apparmor docker5.3 资源调度问题症状实例无法调度到新节点检查清单确认计算节点服务状态openstack compute service list --host server4检查资源上报docker exec nova_compute nova-manage cell_v2 discover_hosts6. 性能优化建议NUMA拓扑适配# 查看NUMA节点 lscpu | grep NUMA # 更新nova配置 echo [DEFAULT] vcpu_pin_set 4-15,20-31 numa_placement_strategy dedicated | \ sudo tee -a /etc/kolla/nova-compute/nova.conf存储后端优化[libvirt] disk_cachemodesnetworkwriteback cpu_modehost-passthrough监控集成# 启用计算节点监控 echo prometheus_nova_exporter: yes | \ sudo tee -a /etc/kolla/config/nova.conf扩容完成后建议运行压力测试验证节点稳定性。可以使用Rally工具执行自动化测试场景rally task start compute-stress.json记住每次扩容后都应更新集群文档记录节点配置参数和特殊调整项。这为后续扩容和维护建立了可追溯的配置基线。

更多文章