请问怎样实现openstack与k8s集成?

参与11

3同行回答

int32bitint32bit研发工程师民生银行
OpenStack与K8S结合主要有两种方案。一是K8S部署在OpenStack平台之上,二是K8S和OpenStack组件集成。首先第一种方案目前也是大多数用户选择的方案,这种方式的优点是K8S能够快速部署、弹性扩容,并且通过虚拟机的多租户间接实现了容器的多租户,隔离性好。缺点是容器跑在虚拟机...显示全部

OpenStack与K8S结合主要有两种方案。一是K8S部署在OpenStack平台之上,二是K8S和OpenStack组件集成。

首先第一种方案目前也是大多数用户选择的方案,这种方式的优点是K8S能够快速部署、弹性扩容,并且通过虚拟机的多租户间接实现了容器的多租户,隔离性好。

缺点是容器跑在虚拟机上,多多少少计算性能可能会有点损耗,网络的多层overlay嵌套也可能导致性能下降。

OpenStack Magnum项目是该方案实现的代表,该项目为OpenStack提供容器编排服务,通过该组件,用户可以快速部署一个K8S、Mesos以及Swarm集群,原理和OpenStack大多数的高级服务实现差不多,先通过heat完成资源编排(创建虚拟机、volume、安全组等),然后通过镜像里面的heat-container-agent以及一些脚本完成K8S、Mesos以及Swarm集群的安装配置。当然,通过Ironic,Magnum支持将容器编排组件直接部署在物理机(裸机)上。

第二种方案是K8S与OpenStack的各个组件集成,在OpenStack社区以及K8S社区的共同努力下,目前可以集成的组件还是挺多的,下面简单介绍下。

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插件,PV支持对接各种存储系统,比如Ceph RBD、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-09-21
浏览2776
Henry2017Henry2017研发工程师金融行业
我接触到的结合,还是通过magnum来实现,创建一组虚机集群作为k8s的基础环境来部署容器。显示全部

我接触到的结合,还是通过magnum来实现,创建一组虚机集群作为k8s的基础环境来部署容器。

收起
金融其它 · 2018-09-21
浏览2373
chinesezzqiangchinesezzqiang课题专家组信息技术经理M
k8s是个容器编排平台,可以安装在各种云平台上,比如vmware或者openstack。所以可以把k8s直接安装在openstack虚拟机上。显示全部

k8s是个容器编排平台,可以安装在各种云平台上,比如vmware或者openstack。所以可以把k8s直接安装在openstack虚拟机上。

收起
IT其它 · 2018-09-21
浏览2483

提问者

大天使之剑
售前技术支持杭州才云科技
擅长领域: 云计算私有云云管平台

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-09-21
  • 关注会员:4 人
  • 问题浏览:4432
  • 最近回答:2018-09-21
  • X社区推广