本文发表时间已超过一年。较旧的文章可能包含过时的内容。请检查页面上的信息自发布以来是否已变得不正确。
我们如何使 Kubernetes 的安装变得非常简单
在 SIG-cluster-lifecycle 中,我们过去几个月一直在努力开发 kubeadm,这个工具可以极大地简化 Kubernetes 的安装。我们从用户那里了解到,安装 Kubernetes 比应有的难度更大,我们希望大家专注于编写优秀的分布式应用程序,而不是与基础设施作斗争!
设置 Kubernetes 集群有三个阶段,我们决定(首先)专注于后两个阶段:
- 配置:获取一些机器
- 引导:在这些机器上安装 Kubernetes 并配置证书
- 附加组件:安装必要的集群附加组件,如 DNS 和监控服务、Pod 网络等。我们很早就意识到,用户希望配置其机器的方式多种多样。
他们使用许多不同的云提供商、私有云、裸机,甚至 Raspberry Pi,并且几乎总是使用自己首选的工具来自动化配置机器: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 肯定是该小组中最年轻的贡献者,并且在学校数学考试前的周日晚上合并了最后一刻的拉取请求。
- CoreOS 的 Brandon Philips 及其团队领导了 TLS 引导的开发,这是我们必不可少的组成部分,没有它,我们将无法完成。
- 来自 Red Hat 的 Devan Goodwin 构建了 Joe 想象的 JWS 发现服务,并整理了我们的 RPM。
- 来自葡萄牙的 Paulo Pires 加入以帮助解决外部 etcd 支持,并承担了许多其他工作。
- 以及许多其他贡献者!
这确实是一项出色的跨公司和跨时区成就,有一群可爱的人参与。SIG-cluster-lifecycle 还有很多工作要做,因此,如果您对这些挑战感兴趣,请加入我们的 SIG。期待与大家合作!
- 立即试用 kubeadm 安装 Kubernetes
- 参与 GitHub 上的 Kubernetes 项目
- 在 Stack Overflow 上发布问题(或回答问题)
- 通过 Slack 与社区联系
- 在 Twitter 上关注我们 @Kubernetesio 获取最新更新