专栏名称: 分布式实验室
最专业的Docker文章,最权威的Docker新闻。关注容器生态圈的发展。
目录
相关文章推荐
zartbot  ·  从AI落地的视角看看Infra的需求 ·  14 小时前  
zartbot  ·  从AI落地的视角看看Infra的需求 ·  14 小时前  
Java知音  ·  SpringBoot ... ·  2 天前  
51好读  ›  专栏  ›  分布式实验室

容器化部署OpenStack的正确姿势

分布式实验室  · 公众号  · 后端  · 2017-07-05 07:45

正文

请到「今天看啥」查看全文


  • 基于组件升级OpenStack。

  • 基于组件回退OpenStack。


  • 具体而言,Kolla的最终目标是为OpenStack的每一个服务都创建一个对应的Docker镜像,通过Docker镜像将升级的粒度减小到服务级别,从而在升级时对OpenStack的影响降到最小,并且一旦升级失败,也很容易回滚。升级只需要三步:拉取新版本的容器镜像,停止老版本的容器服务,启动新版本的容器。回滚也不需要重新安装包,直接启动老版本的容器服务就行,非常方便。


    Kolla可以使用Ansible、Kubernetes或者Mesos来部署OpenStack环境,Kolla负责容器化OpenStack各个服务;后者则负责部署这些容器,搭建出一个可用的OpenStack环境。来实现基于Docker容器的OpenStack服务全生命周期管理,如安装、升级、回滚、迁移等。在部署Docker容器时,默认的网络配置都是Host模式。因为Kolla的Docker镜像粒度很小,它针对每个OpenStack服务都有特定的镜像,所以我们也可以通过Docker命令来操作某个具体的OpenStack服务。


    Kolla项目,及其相关的其他项目,如下:


    • Kolla项目:负责docker build OpenStack每个服务,如nova-compute容器等;

    • Kolla-Ansible项目:使用Ansible部署这些容器,搭建OpenStack环境;

    • Kolla-Kubernetes项目:使用Kubernetes部署这些容器,搭建OpenStack环境;

    • Kolla-Mesos项目:使用Mesos部署这些容器,搭建OpenStack环境。


    简言而之,Kolla就是OpenStack社区的一个用于docker build容器化OpenStack服务的项目,最后,使用其他的社区项目,即kolla-ansible或者kolla-kubernetes执行部署任务。


    Kolla为OpenStack的部署提供了有效、快捷、方便、易于维护、方便版本更新与回退的方案。基于Docker容器部署和运维的OpenStack架构,如下图所示:



    Kolla所涉及到的技术点,有:


    • Docker

    • Ansible

    • Python

    • docker-py

    • Jinja2


    Kolla支持部署HA高可用性的OpenStack环境,如下图所示,大家应该一看就明白吧。是的,正如其他OpenStack HA部署方案一样,如MySQL采用的是Galera等。


    目前,Kolla提供的镜像支持部署如下OpenStack项目,包括但不限于:


    • Aodh

    • Ceilometer

    • Cinder

    • Designate

    • Glance

    • Gnocchi

    • Heat

    • Horizon

    • Ironic

    • Keystone

    • Magnum

    • Mistral

    • Murano

    • Nova

    • Neutron

    • Swift

    • Tempest

    • Zaqar


    以及这些基础设施组件:


    • Ceph分布式存储

    • Openvswitch和Linuxbridge

    • MongoDB数据库

    • RabbitMQ消息队列服务

    • HAProxy和Keepalived 服务高可用组件

    • MariaDB数据库等


    Kolla的Docker镜像制作,支持红帽的RPM包,Ubuntu和Debian的Deb包,还能支持源码的方式。理论上源码制作的镜像,可以运行在所有的支持容器的操作系统上。


    我们可以选择Ansible来做容器的管理,也可以选择Kubernetes或Mesos来管理。目前Ansible已经比较完善,Kubernetes和Mesos还在积极开发中。但我个人感觉,Kubernetes会是未来一段时间的新宠儿,但是它对使用/管理人员的要求会比较高。


    Kolla解决的问题


    过去,无论是个人还是公司尝试使用OpenStack,在安装和部署,都花费和消耗大量的精力。这其实也是影响OpenStack推广的一个重要障碍。如何让大家从部署的枷锁中解放出来,用好OpenStack,才能真正体现出OpenStack的价值。







    请到「今天看啥」查看全文