OpenStack 上部署 Kubernetes 方案对比

Kubernetes on OpenStack

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

Tectonic

Tectonic

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

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

kops

Kubernetes

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

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

kubeadm

Kubernetes

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

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

各种自动化部署工具

CM tools

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

kubespray

Kubespray

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

  以下是 kubespray 的 github:kubespray

Rancher

Rancher

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

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

Murano

Murano

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

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

Magnum

magnum

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

结论

指标\方案

Tectonic

kops

kubespray

各种自动化工具

kubeadm

Rancher

Murano

Magnum

开发者

CoreOS

Kubernetes

Kubernetes

-

Kubernetes

Rancher

OpenStack

OpenStack

成熟度

pre-alpha

alpha

beta

mature

mature

mature

mature

mature

多租户

支持

不支持

不支持

不支持

不支持

支持

不支持

支持

GUI增强

支持

不支持

不支持

不支持

不支持

支持

不支持

支持

自动/手动

手动

自动

自动

自动

手动

手动

自动

自动

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ImportSource

Docker架构里那些名字背后的秘密

Docker作为一个linux平台上一款轻量级虚拟化容器的管理引擎。在短短的两三年内火得不得了。人人都在说docker,大大小小的容器summit。 Docke...

3825
来自专栏达摩兵的技术空间

docker入门学习(1)

1、简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docke...

1002
来自专栏写代码的海盗

Docker学习总结之docker介绍 Why Docker?About this guide

About Docker 以下均翻译自Docker官方文档 ,转载请注明:Vikings翻译 Develop, Ship and Run Any Applica...

2575
来自专栏跟着阿笨一起玩NET

蓝底白字到图形界面 主板BIOS发展简记

本文转载:http://mb.zol.com.cn/229/2295738.html

1571
来自专栏云加头条

【干货合集】Docker快速入门与进阶

Docker 在众多技术中,绝对是当红炸子鸡。这年头,如果你不懂一点容器,不学一些Docker,还怎么出去跟人炫耀技术?Docker 也是云计算技术中较为热门的...

11.5K7
来自专栏跟我一起学Docker

第九章 Kubernetes一撇

https://www.aliyun.com/solution/kubernetes/index

1004
来自专栏云计算

Docker带来的五大益处:CI,版本控制,可移植性,隔离性和安全性

Docker的跨环境一致性在开发界已经获得了广泛认可。通常情况下,开发阶段和正式发布的环境之间总会有细微的差异。除非你拥有自己的私有仓库,并严格检查。这些差异可...

3349
来自专栏人称T客

Docker容器服务需要牢记的五个问题|资讯

关键词:Docker,容器服务 ? 进入2015年,容器技术突然开始变得炙手可热,特别是随着Docker的出现,更是将容器技术推向了顶峰,甚至让人有一种错觉—...

2895
来自专栏生信技能树

跟着jimmy学docker系列之第2讲:一个软件一个容器

回过头来看当初在生信技能树发布的docker教程已经是2017-07-07的事情了,那是一个好日子?:

1302
来自专栏bdcn

CoreOS那些事之Rkt容器尝鲜(上) 转

从CoreOS发布Rocket应用容器项目到现在,已经过去半年时间了。为了增加辨识度,项目更名为了Rkt。在沉寂了许久后,最近又开始在社区里出现了一些新鲜的声音...

3272

扫码关注云+社区

领取腾讯云代金券