设为首页 收藏本站
查看: 1057|回复: 0

[经验分享] Kolla:Docker+OpenStack

[复制链接]

尚未签到

发表于 2018-1-6 11:35:08 | 显示全部楼层 |阅读模式
  一.Kolla项目简介
  kolla项目是TripleO项目的一部分,聚焦于使用docker容器部署openstack服务。 项目于2014年9月开始,是openstack的孵化项目。
  当前Kolla项目在Kollaglue repo提供了以下服务的docker镜像。
  

$ sudo docker search kollaglue  

  代码目录结构
  

docker  
创建docker image
  
k8s
  
创建kubenetes的pods和service配置文件
  
tools
  
与Kolla交互的各种工具
  
devenv
  
管理Kolla开发环境的一些工具。
  

  当前的问题
  当前升级和降级openstack主要有两种方式,基于image与基于package。
  基于image的方式,更新是原子的。
  基于package的更新方式通常不是原子的,升级过程中存在很多导致失败的原因,可能存在部分package更新失败的可能。
  使用场景
  原子性的升级或者回退openstack部署。
  基于组件升级openstack。
  基于组件回退openstack。
  安全与其他
  某些容器可能需要privileged,某些可能需要host相同的namespace。
  安全加强可以使用Selinux或者AppArmor。
  Kolla的主要功能是使用Docker容器快速部署升级OpenStack服务。

二.Kolla理解
  Kolla的最终目标是为OpenStack的每一个服务都创建一个对应的Docker Image,通过Docker Image将升级的粒度减小到Service级别,从而使升级时,对OpenStack影响能达到最小,并且一旦升级失败,也很容易回滚。升级只需要三 步:Pull新版本的容器镜像,停止老版本的容器服务,然后启动新版本容器。回滚也不需要重新安装包了,直接启动老版本容器服务就行,非常方便。
  Kolla是通过Docker Compose来部署OpenStack集群的,现在主要是针对裸机部署的,所以在部署Docker Container时,默认的网络配置都是Host模式。所以Kolla的好处就非常明显了,将OpenStack升级的粒度细化到了Service级 别,升级失败时,可以很容易回滚。
  可以看到首先需要启动一个管理节点,只需要通过一个命令就可以把管理节点部署完成,这个命令是调用Docker Compose来部署OpenStack的所有服务,然后我们可以在每一个计算节点上通过Docker Compose安装计算节点需要的服务,就能部署一个OpenStack集群。因为Kolla的Docker Image粒度很小,它针对每个OpenStack服务都有特定的Image,所以我们也可以通过Docker Run来操作某个具体的OpenStack服务。这个例子是通过Docker Image启动了Glance API。
  图1是一个OpenStack compute的一个例子。
DSC0000.png

  图2 OpenStack compute的一个例子
DSC0001.png

  这是一个简单的YML文件,我们可以通过Docker compose使用这些YML文件部署OpenStack节点,可以看到这个YML文件包含Compute Data Image、Libvirt Image、Network Image、Nova API Image和Compute Image等。第一个Compute Data主要是为其他Container提供存储服务的,可以看到Libvirt和Novacompute的Container的存储都是从 Compute Data来的,因为它们都有一个字段voluemes_from指向Compute Data这个Container。
  如何选择?
  OpenStack和Docker相关的项目这么多,该怎么去选择呢?简单说明如下。
  如果用户只是想将以前的VM Workload迁移到Docker Container,那么它可以使用Nova Docker Driver,一个很典型的例子是Sahara通过Heat调用Nova Docker Driver来创建Hadoop集群。
  如果用户想使用Docker的一些高级功能来部署一个小规模集群,那就可以考虑Heat Docker Driver。
  如果用户想通过OpenStack集成现有的一些Docker集群管理工具像K8S、Swarm来管理大规模的Docker集群,建议使用Magnum。另外因为Magnum也是基于Heat做的,所以默认也支持混合云的功能。
  Murano和Docker的集成,主要体现在它提供了一个K8S的应用,用户可以通过这个K8S应用来管理Docker集群。但Murano和Docker的焦点不一样,Magnum主要提供容器服务,Murano主要提供应用目录服务。
  最后的Kolla,主要是简化OpenStack的安装部署和升级的。
  本节转载自:
  http://www.csdn.net/article/2015-05-20/2824734
  http://blog.csdn.net/halcyonbaby/article/details/44035653

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432176-1-1.html 上篇帖子: centos7下安装docker(19容器架构) 下篇帖子: Istio微服务架构初试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表