Kolla 提供了生产级别的 OpenStack Service Containers
。基于社区的最佳实践, 提供了更好、更快、更可靠的,操作 OpenStack 的部署工具。
解决的问题
- 平滑的升级 / 回滚 OpenStack
- 隔离 OpenStack 的不同组件的依赖环境。尤其是那些使用同一模块不同版本的情况。
- 保证环境的一致性。解决由于安装时间不同,造成的包版本不一致的情况。
- 支持多种安装源 : 源代码安装,CentOS binary 安装等。可以替代掉 devstack。
其实这些问题只要是由 Docker 来解决的。这也是 Kolla 使用 Docker 的原因。
架构
现在 Kolla 主要分成两个部分:
- Docker Images Build
- Ansible 部署 ( 这部分将来会迁移到 kolla-ansible 项目 )
Docker Image Build
主要使用 Jinja2 模板生成 Dockerfile 文件。如果是源代码安装,还会把代码下载好。之后会通过 Docker-py 驱动 Docker 进行镜像构建。构建完成,还可以根据配置将镜像推送的指定的 Registry 服务器。
现在支持的不同的 Linux 发行版本 (Redhat 系和 Debian 系 ) 和不同的 OpenStack 安装包 ( 源代码和二进制包 )
下图是现在所有镜像的依赖关系
Ansible 部署
提供一个完整的 Ansible Playbook, 来部署 Docker 的镜像。并提供 all-in-one 和 multihost 的环境
使用到的技术
- Docker/LXC
- Ansible
- Python