关于通过Kolla-Ansible部署的OpenStack Wallaby版本切换容器运行时的咨询
关于通过Kolla-Ansible部署的OpenStack Wallaby版本切换容器运行时的咨询
Absolutely yes, you can switch the container runtime from Docker to containerd (which implements the CRI standard) for your OpenStack Wallaby deployment via Kolla-Ansible on Ubuntu. Here's a step-by-step guide to make this transition smoothly:
1. 停止所有OpenStack服务与容器
首先需要优雅关停现有OpenStack部署:
- 执行Kolla-Ansible停止命令来终止所有服务:
kolla-ansible stop -i <你的清单文件路径> - 为确保彻底清理,手动停止并移除残留的Docker容器:
sudo docker stop $(sudo docker ps -q) sudo docker rm $(sudo docker ps -aq)
2. 在控制节点与计算节点卸载Docker
清理旧的Docker运行时环境:
- 停止并禁用Docker服务:
sudo systemctl stop docker sudo systemctl disable docker - 彻底卸载Docker相关包:
sudo apt purge -y docker-ce docker-ce-cli containerd.io - 删除Docker残留的数据与配置目录:
sudo rm -rf /var/lib/docker /etc/docker
3. 安装并配置containerd
搭建新的容器运行时:
- 通过apt安装containerd:
sudo apt install -y containerd - 生成containerd默认配置文件:
sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml - 修改配置以启用systemd cgroup驱动(OpenStack服务必需):
用你习惯的编辑器打开/etc/containerd/config.toml,找到[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]段,设置:SystemdCgroup = true - 重启并设置containerd开机自启:
sudo systemctl restart containerd sudo systemctl enable containerd
4. 更新Kolla-Ansible配置
告知Kolla-Ansible使用containerd替代Docker:
- 打开Kolla全局配置文件(通常为
/etc/kolla/globals.yml),修改容器运行时配置项:
确保已有container_runtime: "containerd"kolla_base_distro: "ubuntu"配置项存在(你基于Ubuntu部署,应该已经设置过)。
5. 用containerd重新部署OpenStack
触发使用新运行时的部署流程:
- 先执行bootstrap-servers命令,重新配置节点适配containerd:
kolla-ansible bootstrap-servers -i <你的清单文件路径> - 再执行deploy命令,用containerd启动所有OpenStack服务:
kolla-ansible deploy -i <你的清单文件路径>
6. 验证切换是否成功
- 在任意节点,使用
crictl(若未安装可执行sudo apt install -y cri-tools)查看运行中的容器:
你应该能看到所有OpenStack服务容器都在containerd下运行。sudo crictl ps - 检查OpenStack服务状态,确认一切正常:
所有服务应显示为openstack service listup状态。
备注:内容来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

