OpenStack 的 IaaS 和 容器进行结合构建一体化平台这两种方式的优缺点?是否还有别的方案?

OpenStack 的 IaaS 和 容器 进行结合构建一体化平台的时候,我们目前调研的情况存在两个大的方向:1、将 OpenStack 打入到容器中,然后采用容器化的方式进行部署2、在 OpenStack 的 IaaS 之上构建一套基于 K8S 的 容器调度 平台但是由于时间和费用的整体考量,还没有进行更多的...显示全部

OpenStack 的 IaaS 和 容器 进行结合构建一体化平台的时候,我们目前调研的情况存在两个大的方向:
1、将 OpenStack 打入到容器中,然后采用容器化的方式进行部署
2、在 OpenStack 的 IaaS 之上构建一套基于 K8S 的 容器调度 平台
但是由于时间和费用的整体考量,还没有进行更多的比较,请问一下这两种方式的优缺点是什么?而且现在是否还有其它的解决方案?

收起
参与15

查看其它 1 个回答int32bit的回答

int32bitint32bit研发工程师民生银行

其实还有第三种方案,K8S和OpenStack集成。

题主说的以上两种方案,社区都已经实现:

  1. 将 OpenStack 打入到容器中,然后采用容器化的方式进行部署:OpenStack Kolla。其实我个人认为这不算是OpenStack和容器一体化方案,只是使用容器部署OpenStack。
  2. 在 OpenStack 的 IaaS 之上构建一套基于 K8S 的 容器调度 平台:OpenStack Magnum

关于第三种方案,社区也已经有实现,不过还不成熟。

1 K8S与OpenStack Keystone集成

K8S可以和OpenStack Keystone集成,即K8S可以使用Keystone认证,参考keystone authentication kubernetes-cluster

2 K8S与OpenStack Glance集成

这个没有必要,因为Docker的镜像是分层的,使用Registry或者Harbor即可。当然如果有必要可以使用Glance存储Docker镜像作为备份,不过更建议备份到OpenStack Swift,Registry以及Harbor都原生支持使用Swift作为存储后端。

3 K8S与OpenStack Neutron集成

前面提到的通过Magnum把容器部署在虚拟机,其实并没有根本改变K8S的网络模型,K8S的底层网络依然还是诸如Flannel、Contrail等网络模型,和Neutron其实没有多大关系。另外,容器运行在虚拟机中不仅可能会导致计算性能损耗,网络的多层Overlay嵌套也可能会大大降低容器的网络性能。

其实社区已经实现K8S直接OpenStack Neutron网络集成,即kuryr-kubernetes项目。K8S的pod与OpenStack虚拟机是平等公民,共享Neutron网络服务,K8S网络具备和OpenStack虚拟机等同的功能,比如安全组、防火墙、QoS等。

不过遗憾的是,目前kuryr还不支持多租户,Kuryr使用Neutron的network以及subnet都是配置写死的,而不是创建port时指定。

4 K8S与Cinder集成

目前K8S已经实现了很多volume插件,支持各种存储系统,比如Ceph、GlusterFS、NFS等等,参考kubernetes persistent volumes,其中就包含了Cinder,即K8S可以使用Cinder提供volume服务,这样K8S和Nova共享一套存储系统,都是Cinder的消费者。Cinder屏蔽了底层存储系统,K8S直接对接Cinder,省去了一堆plugins的安装配置。

5 K8S与Manila集成

前面提到K8S与Cinder集成,其实K8S还支持与OpenStack Manila服务集成,目前该插件已经包含在K8S的external storage项目中。

银行 · 2018-06-04
浏览2338

回答者

int32bit
研发工程师民生银行
擅长领域: 云计算私有云云管平台

int32bit 最近回答过的问题

回答状态

  • 发布时间:2018-06-04
  • 关注会员:3 人
  • 回答浏览:2338
  • X社区推广