Inside Kolla - 01 简介
简介
在 opencloud 2015 的会议上初次了解到 kolla 项目后,开始去了解和学习 kolla 的源代码和相关的知识。经过一段时间的了解,觉得 kolla 确实是一个很好的项目,它使用预先安装好的容器来部署 openstack,非常有可能简化目前 openstack 的繁琐部署工作。 这种思路和 FUEL 有点类似,FUEL 里面也使用了容器来安装 cobbler 等部署组件。
幸运的时,kolla 目前还是一个早期项目,代码的规模很小。使用简单的统计,去掉图片、空行:
find . -type f | grep -v 'png' | xargs cat | grep -v '^[[:space:]]*$' | wc -l
得到的代码行数为7000行左右。 与其它 openstack 的庞大代码相小,是非常袖珍的小玩意。 7000行代码量,设计的思想和框架都已经有了雏形,非常适合完整看一遍。
使用基于容器的方式部署 openstack 带来很多的好处:
- 基于容器的开发、测试、部署过程非常连贯,极小出现环境配置、依赖项等烦人问题;
- 容器的升级和部署是原子的,可直接更新整个容器;
- 通过 kubernetes 等工具,可实现服务逐步升级。
- ...
在做了一段时间的 openstack 部署,从最初学 devstack 到自己完整构建整个安装脚本,被 openstack 的各种问题缠绕过,希望 kolla 能拯救我等。
这系列的文章会关注在 kolla 源代码和结构,因此是 inside kolla 。在分析 kolla 源代码同时,会把 kolla 用到其它工具,doker容器技术和ansible等作一点介绍。 我并不是翻译 kolla 里面的文档,而是想要把整个代码的层次结构、原理等弄明白,仅此而已。
By the way,可能是我自己的理解还不够深入,我不太理解为什么要使用 heat 来编排 docker,有 openstack 和 heat,表明这个 openstack 环境已经有了,在此基础上引入docker的话,感觉血统不纯啊-_-。我更加希望的使用场景是在cobbler等工具下部署裸机,再通过ansible、saltstack等工具把相关的服务配置起来。