美文网首页工具癖微服务架构和实践部署运维
OpenStack 上部署 Kubernetes 方案对比

OpenStack 上部署 Kubernetes 方案对比

作者: blackpiglet | 来源:发表于2018-08-29 18:28 被阅读47次
    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 手动部署,做镜像的方式来实现。

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

    相关文章

      网友评论

        本文标题:OpenStack 上部署 Kubernetes 方案对比

        本文链接:https://www.haomeiwen.com/subject/bmbkwftx.html