好的,这是一份基于 openEuler 操作系统的 OpenStack 云计算平台基础部署实战指南。部署过程主要采用 Kolla-Ansible 工具,这是 OpenStack 官方推荐的容器化部署方案。


1. 环境准备

1.1 硬件要求
  • 控制节点:至少 4 核 CPU, 8GB RAM, 50GB 磁盘。运行核心服务(API、数据库、消息队列、调度器等)。
  • 计算节点:至少 8 核 CPU, 16GB RAM, 100GB 磁盘。运行虚拟机实例。
  • 网络节点:可选,若独立部署网络服务(OVN/Neutron L3/LBaaS等),需满足相应资源。
  • 存储节点:可选,若使用 Ceph 等后端存储,需满足存储需求。
  • 网络:节点间网络互通,建议万兆或更高带宽。管理网络、存储网络、业务网络分离。
1.2 软件要求
  • 操作系统:所有节点安装 openEuler LTS 版本(如 22.03 LTS)。确保版本一致。
  • Python:openEuler 自带 Python 3.8+,通常满足要求。
  • 依赖包
    sudo dnf install -y python3-pip git libselinux-python3
    

1.3 节点规划
  • 规划主机名、IP地址(管理网、存储网、业务网)。
  • 配置 /etc/hosts,确保所有节点能通过主机名互相解析。
  • 配置 SSH 免密登录:控制节点能无密码 SSH 到所有其他节点。
  • 所有节点关闭 SELinux 或设置为 permissive 模式(临时:setenforce 0;永久:修改 /etc/selinux/config)。

2. 安装基础服务

2.1 安装 Ansible

控制节点 上安装 Ansible:

sudo dnf install -y ansible

2.2 安装 Kolla-Ansible

控制节点 上创建 Python 虚拟环境并安装 Kolla-Ansible:

python3 -m venv kolla-venv
source kolla-venv/bin/activate
pip install -U pip
pip install 'ansible>=4,<10'
pip install kolla-ansible

2.3 配置文件准备
  1. 复制配置文件
    mkdir -p /etc/kolla
    cp -r kolla-venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
    cp kolla-venv/share/kolla-ansible/ansible/inventory/* .
    

  2. 配置 inventory: 编辑 multinode 文件,添加节点:
    [control]
    control01 ansible_ssh_host=192.168.1.10
    
    [compute]
    compute01 ansible_ssh_host=192.168.1.20
    compute02 ansible_ssh_host=192.168.1.21
    
    [monitoring]
    control01
    
    [network]
    control01 # 或独立网络节点
    
    [storage]
    # 若有独立存储节点,添加在此
    

  3. 配置 globals.yml: 编辑 /etc/kolla/globals.yml,关键配置:
    kolla_base_distro: "openeuler"
    kolla_install_type: "binary"
    openstack_release: "zed" # 选择所需版本,如 zed, yoga 等
    kolla_internal_vip_address: "192.168.1.100" # 高可用虚拟IP
    network_interface: "eth0" # 管理网卡
    neutron_external_interface: "eth1" # 业务/外部网卡
    enable_cinder: "yes"
    enable_cinder_backend: "lvm" # 或其他后端
    enable_neutron_provider_networks: "yes"
    


3. 部署 OpenStack 核心组件

3.1 预检查
kolla-ansible -i ./multinode prechecks

  • 解决报告的错误(如时间同步、软件包缺失等)。
3.2 生成密码文件
kolla-genpwd

  • 生成的密码在 /etc/kolla/passwords.yml
3.3 启动部署
kolla-ansible -i ./multinode deploy

  • 此过程耗时较长(30分钟至数小时),请耐心等待。
  • 监控输出,遇到错误需排查解决(常见问题:网络不通、依赖包缺失、配置错误)。

4. 网络配置

4.1 初始化 OpenStack CLI 环境

在控制节点:

source /etc/kolla/admin-openrc.sh

4.2 创建 Provider 网络
  1. 创建外部网络
    openstack network create --provider-physical-network physnet1 --provider-network-type flat --external public1
    openstack subnet create --network public1 --subnet-range 192.168.2.0/24 --gateway 192.168.2.1 --allocation-pool start=192.168.2.100,end=192.168.2.200 public1-subnet
    

  2. 配置计算节点: 确保计算节点的 eth1(业务网卡)已正确连接物理网络,且无 IP 地址配置。
4.3 创建 Overlay 网络(可选)
openstack network create private
openstack subnet create --network private --subnet-range 10.0.0.0/24 private-subnet


5. 验证与测试

5.1 生成 OpenRC 文件
kolla-ansible post-deploy
source /etc/kolla/admin-openrc.sh

5.2 基础功能验证
  1. 列出服务
    openstack compute service list
    openstack network agent list
    

  2. 创建测试实例
    openstack image create "cirros" --file cirros-0.5.2-x86_64-disk.img --disk-format qcow2
    openstack flavor create --ram 512 --disk 1 --vcpus 1 m1.tiny
    openstack server create --image cirros --flavor m1.tiny --network private test-vm
    

  3. 分配浮动 IP 并关联
    openstack floating ip create public1
    openstack server add floating ip test-vm <floating-ip-address>
    

  4. SSH 访问:尝试使用浮动 IP 登录 Cirros 实例(用户名 cirros, 密码 gocubsgo)。

6. 运维与管理

  • 服务管理:使用 kolla-ansible 命令(如 stop, start, reconfigure, upgrade)。
  • 日志查看:容器日志位于 /var/log/kolla/ 下对应服务目录。
  • 监控:启用 enable_prometheusenable_grafana 进行监控。
  • 备份:定期备份 /etc/kolla 目录和数据库(MariaDB/PostgreSQL)。
  • 安全加固:结合 openEuler 安全指南(如内核加固、防火墙策略)进行平台加固。

注意事项

  1. 版本兼容性:确保 kolla-ansible 版本与 OpenStack 目标版本兼容。
  2. 网络规划:提前规划好物理网络拓扑和 VLAN 划分。
  3. 磁盘空间/var/lib/docker 需要足够空间存放容器镜像和卷。
  4. 时间同步:所有节点必须使用 NTP/Chrony 保持时间同步。
  5. 问题排查:部署失败时,详细查看 Ansible 输出和对应服务的容器日志。

这份指南提供了基础部署框架,实际部署需根据具体硬件环境和网络架构调整配置参数。遇到问题时,建议查阅 OpenStack 官方文档和 Kolla-Ansible 项目文档。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐