为展现 Kolla 的真正实力,我在阿里云使用 Ansible 自动创建 10 台虚机,部署一套多节点高可用 OpenStack 集群!
前言
上次 Kolla 已经表示了要打 10 个的愿望,这次我们就满足它。
通过本期内容,你将看到:
- 如何使用阿里云云命令行(Cloud Shell)
- 如何使用 Ansible 创建阿里云资源
- Kolla 多节点部署配置说明
- OpenStack 高可用架构
本期内容仍然是干货满满,写文章,调脚本,剪视频,不但花时间,还要在 阿里云 花钱租云服务器,真的费了不少精力,所以如果本文对你有所帮助,请务必点赞支持!谢谢。
操作过程仍可在 B站观看视频
准备工作
使用 Cloud Shell
一次性创建 10 台虚机,从界面一个个的点就太无聊了。所以我们要想办法让这个过程自动化地完成。
第一个念头就是用 Python 去调用 API,于是直奔 开发者工具 页面而去,却发现阿里云提供了网页版的命令行工具:Cloud Shell,使用起来更加方便。
启动 Cloud Shell 会自动为你创建一个虚机,里面不但内置了连接阿里云的 CLI 工具,而且因为是登录后启动,它自动把认证也处理了。也就是说我们直接就可以开始使用了,非常方便。
具体请参考官方文档:什么是云命令行?
不仅如此,为了让大家更好地掌握这些工具的用法,还提供了交互式的 实验教程,花上几分钟,也许再花上几分钱,就能上手实验。
在实验了 使用 Ansible 管理云资源 这个教程之后,决定就采用这个方法了。
CloudShell 的操作内容较多,单独录了一期 视频介绍。
准备容器镜像
这次部署多节点,比前几次只部署 All-In-One
节点新增了 Cinder
存储服务,所以把要用到的镜像都提前构建好。
关于 Kolla 构建 Docker 镜像的过程以后再详述。
容器镜像仍然使用阿里云的容器镜像服务,保存在 华东2(上海)
地区。
值得注意的是,上一期内容中我在 华东1(杭州)
地区测试,跨地区从公网地址拉取镜像,速度也还不错。但是本次测试只在部署节点分配了公网 IP,其余节点都不会分配公网 IP,也就没法访问公网资源了。
一个解决办法是只在 华东2(上海)
地区测试,这样可以配置私网地址。这样限制较大。
另一个比较通用的办法是先在部署节点上搭建一个私有的 registry 作为中转,就和使用 davycloud-openstack-stein.iso
安装的 Deploy Node 一样。
最终采取的是把 registry 配置成 PROXY
模式,这样就不用事先把镜像 push 到 registry 中了。
# deploy.yml 中的内容
- name: Start docker registry
docker_container:
name: registry
restart_policy: always
image: registry:2
ports:
-