OpenStack Yoga集群部署实战用Skyline统一管理多节点Ubuntu 24.04环境当企业需要构建私有云平台时OpenStack无疑是最成熟的开源解决方案之一。最新发布的Yoga版本在性能优化和功能完善方面都有显著提升特别是在多节点集群管理和资源调度方面。本文将带您从零开始在Ubuntu 24.04系统上部署一个包含控制节点和计算节点的OpenStack Yoga集群并集成Skyline这一强大的可视化管理系统实现对整个云平台的统一监控和管理。1. 环境规划与准备在开始部署之前合理的环境规划至关重要。我们将采用三节点架构一个控制节点(controller)和两个计算节点(compute1, compute2)。这种架构既保证了基本的高可用性又能满足中小型企业的需求。1.1 硬件要求控制节点至少8核CPU16GB内存100GB存储空间计算节点根据预期负载配置建议每节点16核CPU32GB内存200GB存储空间网络所有节点需在同一局域网内建议千兆或更高带宽1.2 系统配置在所有节点上执行以下基础配置# 禁用防火墙 sudo systemctl disable --now ufw # 配置主机名解析 sudo tee -a /etc/hosts EOF 192.168.137.60 controller 192.168.137.61 compute1 192.168.137.62 compute2 EOF # 配置时间同步 sudo apt install -y chrony sudo systemctl enable --now chrony chronyc sources1.3 软件源配置OpenStack Yoga需要特定的软件源在所有节点上执行sudo apt install -y software-properties-common sudo add-apt-repository cloud-archive:yoga -y sudo apt update sudo apt upgrade -y2. 控制节点部署控制节点是OpenStack集群的大脑负责协调所有服务。我们将分步骤安装关键组件。2.1 数据库与消息队列MariaDB将作为集群的数据库后端RabbitMQ用于组件间通信# 安装MariaDB sudo apt install -y mariadb-server python3-pymysql # 配置MySQL sudo tee /etc/mysql/mariadb.conf.d/99-openstack.cnf EOF [mysqld] bind-address 192.168.137.60 default-storage-engine innodb innodb_file_per_table on max_connections 4096 collation-server utf8_general_ci character-set-server utf8 EOF sudo systemctl restart mysql sudo mysql_secure_installation # 安装RabbitMQ sudo apt install -y rabbitmq-server sudo rabbitmqctl add_user openstack 123456 sudo rabbitmqctl set_permissions openstack .* .* .*2.2 Keystone身份服务Keystone是OpenStack的身份认证服务必须先部署# 创建数据库 sudo mysql -e CREATE DATABASE keystone; sudo mysql -e GRANT ALL PRIVILEGES ON keystone.* TO keystonelocalhost IDENTIFIED BY keystone; sudo mysql -e GRANT ALL PRIVILEGES ON keystone.* TO keystone% IDENTIFIED BY keystone; # 安装Keystone sudo apt install -y keystone # 配置Keystone sudo cp /etc/keystone/keystone.conf{,.bak} sudo tee /etc/keystone/keystone.conf EOF [database] connection mysqlpymysql://keystone:keystonecontroller/keystone [token] provider fernet EOF # 初始化数据库和密钥 sudo su -s /bin/sh -c keystone-manage db_sync keystone sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone sudo keystone-manage credential_setup --keystone-user keystone --keystone-group keystone # 启动服务 sudo keystone-manage bootstrap --bootstrap-password admin \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne sudo systemctl restart apache23. 计算节点部署计算节点负责运行虚拟机实例需要与控制节点紧密配合。3.1 Nova计算服务在每个计算节点上安装和配置Nova# 安装Nova组件 sudo apt install -y nova-compute # 配置Nova sudo cp /etc/nova/nova.conf{,.bak} sudo tee /etc/nova/nova.conf EOF [DEFAULT] transport_url rabbit://openstack:123456controller my_ip 192.168.137.61 [api] auth_strategy keystone [keystone_authtoken] www_authenticate_uri http://controller:5000/ auth_url http://controller:5000/ memcached_servers controller:11211 auth_type password project_domain_name default user_domain_name default project_name service username nova password nova [vnc] enabled true server_listen 0.0.0.0 server_proxyclient_address \$my_ip novncproxy_base_url http://controller:6080/vnc_auto.html [glance] api_servers http://controller:9292 [oslo_concurrency] lock_path /var/lib/nova/tmp [placement] region_name RegionOne project_domain_name default project_name service auth_type password user_domain_name default auth_url http://controller:5000/v3 username placement password placement EOF # 配置虚拟化类型 sudo tee /etc/nova/nova-compute.conf EOF [libvirt] virt_type qemu EOF # 启动服务 sudo systemctl enable --now nova-compute3.2 网络服务配置计算节点需要参与网络虚拟化安装Neutron组件# 安装Neutron组件 sudo apt install -y neutron-linuxbridge-agent # 配置Neutron sudo cp /etc/neutron/neutron.conf{,.bak} sudo tee /etc/neutron/neutron.conf EOF [DEFAULT] transport_url rabbit://openstack:123456controller auth_strategy keystone core_plugin ml2 [keystone_authtoken] www_authenticate_uri http://controller:5000 auth_url http://controller:5000 memcached_servers controller:11211 auth_type password project_domain_name default user_domain_name default project_name service username neutron password neutron [oslo_concurrency] lock_path /var/lib/neutron/tmp EOF # 配置Linux Bridge代理 sudo cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak} sudo tee /etc/neutron/plugins/ml2/linuxbridge_agent.ini EOF [linux_bridge] physical_interface_mappings provider:ens33 [vxlan] enable_vxlan true local_ip 192.168.137.61 l2_population true [securitygroup] enable_security_group true firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver EOF # 启动服务 sudo systemctl enable --now neutron-linuxbridge-agent4. Skyline集成与管理Skyline是一个强大的OpenStack管理面板提供了比原生Horizon更丰富的功能。4.1 Skyline部署在控制节点上部署Skyline# 创建数据库 sudo mysql -e CREATE DATABASE skyline; sudo mysql -e GRANT ALL PRIVILEGES ON skyline.* TO skylinelocalhost IDENTIFIED BY skyline; sudo mysql -e GRANT ALL PRIVILEGES ON skyline.* TO skyline% IDENTIFIED BY skyline; # 创建Skyline用户 openstack user create --domain default --password skyline skyline openstack role add --project service --user skyline admin # 准备配置文件 sudo mkdir /etc/skyline sudo tee /etc/skyline/skyline.yaml EOF default: database_url: mysql://skyline:skyline192.168.137.60:3306/skyline debug: true log_dir: /var/log/skyline openstack: keystone_url: http://192.168.137.60:5000/v3/ system_user_password: skyline EOF # 安装Docker sudo apt install -y docker.io sudo systemctl enable --now docker # 运行Skyline容器 docker run -d --name skyline \ -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \ --nethost \ 99cloud/skyline:latest4.2 Skyline功能概览Skyline提供了多项增强功能集群健康监控实时显示各节点资源使用情况统一日志查看聚合所有节点的日志信息智能告警基于阈值设置自动触发告警资源拓扑图可视化展示资源分配关系性能分析提供历史性能数据分析访问方式通过浏览器访问控制节点的8080端口http://controller:8080使用admin用户和设置的密码登录。5. 运维最佳实践部署完成后还需要注意以下运维要点5.1 日常维护定期备份特别是数据库和配置文件MariaDB备份mysqldump --all-databases openstack-backup.sql配置文件备份将/etc目录下所有OpenStack相关配置打包备份日志监控关键服务日志位置Nova/var/log/nova/Neutron/var/log/neutron/Keystone/var/log/apache2/error.log5.2 性能优化# Nova调度优化 sudo tee -a /etc/nova/nova.conf EOF [scheduler] max_placement_results 10 discover_hosts_in_cells_interval 300 EOF # Neutron网络性能优化 sudo tee -a /etc/neutron/neutron.conf EOF [agent] report_interval 30 EOF5.3 故障排查常见问题及解决方法虚拟机无法启动检查计算节点资源是否充足验证网络连接是否正常查看Nova和Neutron日志网络连接问题检查Linux Bridge配置验证Neutron代理状态确保安全组规则正确认证失败确认Keystone服务正常运行检查token是否过期验证各服务配置文件中的认证信息通过Skyline的监控面板可以快速定位大多数常见问题。其集成的日志查看和告警功能大大简化了运维工作。