本文已超过一年。较旧的文章可能包含过时内容。请检查页面信息自发布以来是否已失效或不正确。

我们如何让 Kubernetes 的安装变得极其简单

SIG-cluster-lifecycle,我们在过去几个月一直在努力开发 kubeadm,这是一个使 Kubernetes 安装过程大大简化的工具。我们听用户反映安装 Kubernetes 比应有的要困难,我们希望人们能专注于编写优秀的分布式应用,而不是与基础设施纠缠不清!

设置 Kubernetes 集群有三个阶段,我们决定首先关注后两个阶段:

  1. 供应:获取一些机器
  2. 引导:在其上安装 Kubernetes 并配置证书
  3. 附加组件:安装必要的集群附加组件,如 DNS 和监控服务、Pod 网络等。我们很早就意识到,用户供应机器的方式存在巨大差异。

他们使用各种不同的云提供商、私有云、裸金属甚至树莓派,并且几乎总是有自己偏好的机器供应自动化工具:Terraform 或 CloudFormation、Chef、Puppet 或 Ansible,甚至裸金属的 PXE 启动。因此我们做了一个重要决定:kubeadm 不会供应机器。相反,它唯一的前提是用户拥有一些运行 Linux 的计算机

另一个重要限制是,我们不想仅仅构建另一个“从外部配置 Kubernetes,通过将所有组件拼凑到位”的工具。有许多外部项目在做这件事,但我们想追求更高的目标。我们选择改进 Kubernetes 核心本身,使其更容易安装。幸运的是,为此打基础的许多工作早已开始。

我们意识到,如果我们将 Kubernetes 的手动安装变得极其简单,用户应该就能很自然地知道如何使用任何工具自动化该过程。

于是,kubeadm 应运而生。它没有基础设施依赖,并满足上述要求。它易于使用且应该易于自动化。它目前仍处于 Alpha 阶段,但其工作方式如下:

  • 你安装 Docker 和适用于你发行版的官方 Kubernetes 包。
  • 选择一个主节点(master host),运行 kubeadm init。
  • 这会设置控制平面(control plane),并输出一个包含安全令牌(secure token)的 kubeadm join [...] 命令。
  • 在每个选定为工作节点(worker node)的主机上,运行上面输出的 kubeadm join [...] 命令。
  • 安装 Pod 网络。Weave Net 是一个不错的起点。只需运行 kubectl apply -f https://git.io/weave-kube 即可安装。瞧!你就拥有一个可工作的 Kubernetes 集群了!立即尝试 kubeadm。 

如需视频演示,请查看此处:

请遵循 kubeadm 入门指南亲自动手尝试,并通过 GitHub 提供反馈,请注明 @kubernetes/sig-cluster-lifecycle

最后,我要向 SIG-cluster-lifecycle 中的许多人表示衷心感谢,没有他们,这一切就不可能实现。我在这里只提及其中的几位:

  • Joe Beda 始终引导我们将重心放在为用户简化事情上。
  • Google 的 Mike Danese 是一位杰出的技术负责人,并且总是了解最新情况。Mike 还坚持不懈地完成了大量必要的代码评审。
  • 我在 Weaveworks 的同事 Ilya Dmitrichenko 编写了大部分 kubeadm 代码,并且慷慨地帮助其他贡献者。
  • 来自芬兰的 Lucas Käldström 可能是这个小组中最年轻的贡献者,他在学校数学考试前的那个周日晚上还在合并最后关头的 PR(Pull Request)。
  • CoreOS 的 Brandon Philips 和他的团队领导了 TLS 引导(TLS bootstrapping)的开发,这是一个我们必不可少的核心组件。
  • 来自 Red Hat 的 Devan Goodwin 构建了 Joe 设想的 JWS discovery service,并整理了我们的 RPM 包。
  • 来自葡萄牙的 Paulo Pires 踊跃参与进来,协助外部 etcd 支持方面的工作,并承担了许多其他零碎任务。
  • 还有许多其他贡献者!

这确实是一个杰出的跨公司、跨时区成就,汇聚了一群可爱的人。SIG-cluster-lifecycle 还有很多工作要做,如果你对这些挑战感兴趣,请加入我们的 SIG。期待与大家的合作!