本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。

我们如何让 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 包。
  • 选择一个主节点主机,运行 `kubeadm init`。
  • 这将设置控制平面并输出一个包含安全令牌的 `kubeadm join [...]` 命令。
  • 在每个选作工作节点的宿主机上,运行上述 `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 肯定是团队中最年轻的贡献者,他在学校数学考试前的周日晚上还在合并最后一刻的拉取请求。
  • Brandon Philips 和他的 CoreOS 团队领导了 TLS 引导的开发,这是一个必不可少的核心组件,没有它我们寸步难行。
  • Red Hat 的 Devan Goodwin 建立了 Joe 设想的 JWS 发现服务,并整理了我们的 RPM 包。
  • 来自葡萄牙的 Paulo Pires 积极参与,协助支持外部 etcd 并承担了许多其他工作。
  • 以及许多其他贡献者!

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