文章

OpenStack部署方案简介

OpenStack部署方案简介

OpenStack部署方案简介

本文档对比多种 OpenStack 部署方式,说明各自架构、适用系统、运维工具及选择建议。


方案总览

方案适用系统底层架构是否使用 k8s复杂度耗时典型场景
Sunbeam仅 Ubuntu 24.04snap + Juju + MicroK8s✅ 是⭐ 最低15–30 分钟单机、学习、快速体验
PackstackCentOS/RHEL 9系统包 + systemd❌ 否⭐⭐ 低30–60 分钟PoC、测试、学习
DevStackUbuntu / CentOS源码 + systemd❌ 否⭐⭐⭐ 较高30–60 分钟开发、CI、最新代码
Docker DevStack通用Docker Compose❌ 否⭐⭐ 低10–20 分钟测试、隔离环境
Kolla-Ansible Docker通用Docker + Ansible❌ 否(容器化)⭐⭐⭐ 中视规模测试、小规模部署

核心区别:是否使用 Kubernetes

  • Sunbeam:由 Canonical 提供,基于 Juju + MicroK8s 编排,OpenStack 组件以 Pod 形式运行在 K8s 中。因此需要用到 kubectljujumicrocephsunbeam 等命令。
  • Packstack / DevStack / Docker:采用传统 systemd 服务Docker 容器不使用 Kubernetes。运维主要依赖 openstack CLI 和 systemctl(或 docker)。

结论:在 CentOS 上部署(Packstack 或 DevStack)时,不会有 k8s,也就没有 kubectl、juju、sunbeam 等命令,只需使用 openstacksystemctl


各方案详解

1. Sunbeam(Ubuntu 24.04)

Canonical 官方推荐,OpenInfra 上游项目,通过 snap 安装,自动化程度最高。

项目说明
系统要求仅支持 Ubuntu 24.04 (Noble);不支持 22.04
架构snap (openstack) + Juju + MicroK8s + LXD
存储MicroCeph(可选,Ceph 存储)
运维工具openstackjujukubectlmicrocephsunbeam
凭证source ~/demo-openrc
Horizon通常通过 NodePort 暴露,如 http://<IP>:32483

安装方式:snap 安装 openstack 后,按分步流程完成集群引导与配置。


2. Packstack(CentOS Stream 9 / RHEL 9)

RDO 社区方案,使用系统包部署,仅支持 CentOS/RHEL

项目说明
系统要求CentOS Stream 9 或 RHEL 9
架构centos-release-openstack-caracal + openstack-packstackpackstack --allinone
服务管理systemd(如 nova-apikeystoneneutron-server 等)
运维工具openstacksystemctl
凭证source /root/keystonerc_admin
Horizonhttp://<本机IP>/dashboard

安装方式:启用 CRB 仓库,安装 centos-release-openstack-caracal 与 openstack-packstack,执行 packstack –allinone。


3. DevStack(Ubuntu / CentOS)

源码方式,克隆 DevStack 后通过 stack.sh 部署,适合开发与 CI。

项目说明
系统要求Ubuntu 24.04/22.04 或 CentOS Stream 9
架构从上游克隆 DevStack 源码,执行 stack.sh 部署
服务管理systemd 或进程方式
运维工具openstacksystemctl
凭证Ubuntu: source ~/devstack/openrc admin admin;CentOS 类似
Horizonhttp://<IP>:6080

安装方式:先准备环境(依赖、stack 用户等),再克隆 DevStack 源码并执行 stack.sh。

注意:CentOS Stream 9 可能遇到 RabbitMQ、Python 包依赖冲突,可改用 Docker 容器方案规避。


4. Docker 部署

在容器中运行 OpenStack,与宿主机服务隔离,降低依赖冲突。

4.1 DevStack Docker

项目说明
架构Docker Compose + DevStack 官方镜像
运维工具dockerdocker-composeopenstack(容器内)
Horizonhttp://<IP>:6080

安装方式:使用 Docker Compose 拉取 DevStack 镜像并启动容器。

4.2 Kolla-Ansible Docker

项目说明
架构Kolla 镜像 + Ansible 编排
运维工具dockeransibleopenstack
Horizonhttp://<IP>:80,密码在 Kolla 配置目录中

安装方式:使用 Kolla 镜像与 Ansible 编排部署。


运维命令对照

用途SunbeamPackstack / DevStackDocker
加载凭证source ~/demo-openrcsource /root/keystonerc_adminsource ~/devstack/openrc admin admin容器内或挂载 openrc 文件
OpenStack CLIopenstack ...openstack ...openstack ...
编排/服务juju statussunbeam ...systemctl status nova-apidocker psdocker-compose logs
K8skubectl -n openstack get pods不适用不适用
存储microceph status系统 Cinder/LVM由镜像/卷管理

选择建议

需求推荐方案
Ubuntu 24.04,快速上手、学习Sunbeam
CentOS/RHEL 9,PoC、测试Packstack
开发、CI、需最新源码DevStack
避免系统依赖冲突、隔离环境Docker DevStack
需多节点、生产级考虑 Charmed OpenStack、Kolla-Ansible 等(通常以单机为主)
本文由作者按照 CC BY 4.0 进行授权