为了账号安全,请及时绑定邮箱和手机立即绑定

OpenStack 上部署 Kubernetes 方案对比

标签:
Kubernetes

webp

Kubernetes on OpenStack

  目前在 OpenStack 上部署 Kubernetes 有多种方式,本文会先简要描述每种方案,再使用图标进行简单的对比,并尝试给出个人认为的较优方案。

Tectonic

webp

Tectonic

  由 CoreOS 开发,是开源企业级的 Kubernetes 部署解决方案,对 Kubernetes 做了一些改造,支持多集群管理(也就是支持多租户管理),更流畅的图形化管理等。但 Tectonic 主要的目标是在公有云上部署,比如 GCE、AWS 等,虽然也开始支持 OpenStack 等私有云,但目前还不够成熟,处于 pre-alpha 阶段,所以暂不考虑。

  以下是在 OpenStack 上部署的官方文档:Deploy tectonic on OpenStack by Terraform

kops

webp

Kubernetes

  由 Kubernetes 社区开发,是一个部署 Kubernetes 的命令行工具,和 Tectonic 一样,主要的目标也是在公有云上部署 Kubernetes,而且对 OpenStack 的支持也不算好,目前处于 Alpha 阶段。所以 kops 也不予考虑。

  以下是 kops 在 OpenStack 上部署的官方文档:Deploy on OpenStack tutorial

kubeadm

webp

Kubernetes

  由 Kubernetes 社区开发,是 Kubernetes 目前官方推荐的部署方式,大幅简化了 Kubernetes 的部署复杂度,但依旧需要较多的手动操作,而且这和在裸机上部署是没有任何区别的,对 Kubernetes 没有任何的功能增强。但是可以考虑在其他方案实施难度较大时,作为备选方案:先用 kubeadm 在 OpenStack 上手动搭建好环境,做成镜像,再使用 cloud-init 注入个性化数据(可能这部分的工作量也不小)。

  以下是 kubeadm 在 OpenStack 上部署教程:kubeadm + openstack cloud provider using Kubernetes 1.9

各种自动化部署工具

webp

CM tools

  早在 2015 年,Kubernetes 社区就已经有了比较成熟的使用 Ansible 部署的 playbook。虽然没有全部查证,但我相信所有的主流自动化部署工具都有成熟的 Kubernetes 部署方案,例如 Ansible、Puppet、Salt、Terraform、Nomad 和 Chef 等。这比 kubeadm 的好处是,自动化部署,不需要手动干预,但如果部署好 OpenStack 虚拟机后,安装 Kubernetes 的执行时间过长的话,还是不能直接使用,依旧要做镜像,和注入个性化数据。这个也可以作为备选方案,进行尝试。

kubespray

webp

Kubespray

  由 Kubernetes 社区开发,是一个凡用的 Kubernetes 部署工具,目的是自动化的将 Kubernetes 部署在任何环境上,当然也支持 OpenStack。需要注意的是,这是部署工具,所以没有对 Kubernetes 做任何功能上的增强,且底层的实现,就是使用 Ansible 来做自动化部署。考虑到是由 Kubernetes 社区提供,使用中可能会遇到一些国外服务器上的镜像无法获取的问题,再加上代码的封装,恐怕修改还不如直接用 Ansible 来的方便。所以暂不考虑该方案。

  以下是 kubespray 的 github:kubespray

Rancher

webp

Rancher

  由 Rancher 开发,是开源企业级的 Kubernetes 部署解决方案,支持在 OpenStack 上部署,同时好处是对 Kubernetes 做了增强,支持多租户,有更好的界面和使用体验,可以作为备选之一,但可能的坏处是,需要深入的理解 Rancher 的开源代码,以及和 Kubernetes 的集成度,以及软件升级问题,需要考虑。

  以下是 Rancher 的官方文档:Rancher 2.0 overview

Murano

webp

Murano

  由 OpenStack 社区开发,这是一个通用的应用目录管理软件,所以也可以管理 Kubernetes,底层使用 Chef 等自动化配置管理工具实现。所以天然的缺点是不够专业化,对容器管理不足够出色,但优点是发展时间较久,有完善的图形化界面。

  以下是 murano 的官方文档:murano official document

Magnum

webp

magnum

  由 OpenStack 社区开发,这是 OpenStack 官方的 Kubernetes 等 COE(Container Orchestration Engine)部署和管理解决方案。天然支持多租户,但不好的地方是只有命令行,没有界面。对此,官方的解决方案和将 magnum 和 murano 结合。

结论

指标\方案Tectonickopskubespray各种自动化工具kubeadmRancherMuranoMagnum
开发者CoreOSKubernetesKubernetes-KubernetesRancherOpenStackOpenStack
成熟度pre-alphaalphabetamaturematurematurematuremature
多租户支持不支持不支持不支持不支持支持不支持支持
GUI增强支持不支持不支持不支持不支持支持不支持支持
自动/手动手动自动自动自动手动手动自动自动

  个人人为,目前 magnum 是最优的方案,起步时可以只安装 magnum,后面再慢慢上 murano,解决界面问题。magnum 依赖 Heat,如果难度较大,短时间不易实现,可以使用 kubeadm 手动部署,做镜像的方式来实现。



作者:blackpiglet
链接:https://www.jianshu.com/p/a12e58992e3d


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消