OpenStack 上部署 Kubernetes 方案对比

OpenStack 上部署 Kubernetes 方案对比
Kubernetes on OpenStack

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

Tectonic

OpenStack 上部署 Kubernetes 方案对比
Tectonic

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

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

kops

OpenStack 上部署 Kubernetes 方案对比
Kubernetes

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

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

kubeadm

OpenStack 上部署 Kubernetes 方案对比
Kubernetes

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

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

各种自动化部署工具

OpenStack 上部署 Kubernetes 方案对比
CM tools

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

kubespray

OpenStack 上部署 Kubernetes 方案对比
Kubespray

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

  以下是 kubespray 的 github:kubespray

Rancher

OpenStack 上部署 Kubernetes 方案对比
Rancher

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

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

Murano

OpenStack 上部署 Kubernetes 方案对比
Murano

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

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

Magnum

OpenStack 上部署 Kubernetes 方案对比
magnum

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

结论

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

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

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=32mxitay1osg4

文章链接:https://www.sbkko.com/ganhuo-159.html
文章标题:OpenStack 上部署 Kubernetes 方案对比
文章版权:SBKKO 所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

给TA打赏
共{{data.count}}人
人已打赏
干货分享

Android 专享智能工具箱,35个小工具任你用

2018-8-29 17:57:00

干货分享

阅文神器好,护眼灵宝妙,看书眼不瞎!多图预警!

2018-8-29 21:52:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索