Skip to main content

使用 kubeadm 创建单主集群

kubeadm 帮你创建了最小的可用的 k8s 集群。使用 kubeadm, 你的集群应该通过了 Kubernetes Conformance tests 测试。Kubeadm 也支持其他集群的生命周期方法,比如 upgrades, downgrade 和管理bootstrap tokens.

因为 k8s 可以安装到各种不同的平台上。所以可以和 Terraform、Ansible 等系统管理工具集成。

kubeadm 的简单性意味着它可以服务于各种用例:

  • 新用户可以从kubeadm开始,第一次尝试Kubernetes。
  • 熟悉Kubernetes的用户可以使用kubeadm启动集群并测试他们的应用程序。
  • 较大的项目可以包括kubeadm作为更复杂系统中的构建块,也可以包括其他安装程序工具。

kubeadm旨在成为新用户开始尝试Kubernetes的一种简单方法,可能是第一次,现有用户可以轻松地测试他们的应用程序并将群集拼接在一起,也可以成为其他生态系统中的构建块 和/或具有更大范围的安装工具。

您可以在支持安装deb或rpm软件包的操作系统上轻松安装kubeadm。 kubeadm的责任SIG,SIG Cluster Lifecycle,提供了为您预先构建的这些软件包,但您也可以从其他操作系统的源代码构建它们。

kubeadm 成熟度

Area Maturity Level Command line UX GA Implementation GA Config file API beta CoreDNS GA kubeadm alpha subcommands alpha High availability alpha DynamicKubeletConfig alpha Self-hosting alpha

kubeadm的整体特征状态是GA。 一些子功能,如配置文件API仍在积极开发中。 随着工具的发展,创建集群的实现可能会略有变化,但整体实现应该非常稳定。 根据定义,kubeadm alpha下的任何命令都在alpha级别上受支持。

支持时间表

Kubernetes版本通常支持九个月,在此期间,如果发现严重错误或安全问题,可能会从发布分支发布补丁版本。 以下是最新的Kubernetes版本和支持时间表; 这也适用于kubeadm。

Kubernetes version Release month End-of-life-month v1.6.x March 2017 December 2017 v1.7.x June 2017 March 2018 v1.8.x September 2017 June 2018 v1.9.x December 2017 September 2018 v1.10.x March 2018 December 2018 v1.11.x June 2018 March 2019 v1.12.x September 2018 June 2019 v1.13.x December 2018 September 2019

  • Before you begin
  • Objectives
  • Instructions
  • Tear down
  • Maintaining a cluster
  • Explore other add-ons
  • What’s next
  • Feedback
  • Version skew policy
  • kubeadm works on multiple platforms
  • Limitations
  • Troubleshooting

开始之前

  • 一台或多台运行 deb/rpm-compatible 的系统,如 ubuntu 或 contos
  • 每台机器2 GB或更多RAM。 任何减少都会为您的应用留下很小的空间。
  • 主站上有2个CPU或更多CPU
  • 群集中所有计算机之间的完全网络连接。 公共或私人网络没问题。

目标

  • 安装单个主Kubernetes群集或高可用性群集
  • 在群集上安装Pod网络,以便您的Pod可以相互通信

指南

在机器上安装 kubeadm

安装文档

如果已经安装,使用 apt-get update && apt-get upgrade or yum update 命令更新

初始化主节点

主服务器是控制平面组件运行的机器,包括etcd(集群数据库)和API服务器(kubectl CLI与之通信)。

  • 选择一个pod网络加载项,并验证是否需要将任何参数传递给kubeadm初始化。根据您选择的第三方提供商,您可能需要将--pod-network-cidr设置为特定于提供者的值。请参阅安装pod网络加载项。
  • (可选)从版本1.14开始,kubeadm将尝试使用众所周知的域套接字路径列表来检测Linux上的容器运行时。要使用不同的容器运行时,或者在已配置节点上安装了多个容器,请将-cri-socket参数指定给kubeadm init。请参阅安装运行时
  • (可选)除非另有说明,否则kubeadm使用与默认网关关联的网络接口来通告主IP。要使用其他网络接口,请为kubeadm init指定--apiserver-advertise-address = ip-address参数。要使用IPv6寻址部署IPv6 Kubernetes群集,必须指定IPv6地址,例如--apiserver-advertise-address = fd00 :: 101
  • (可选)在kubeadm init之前运行kubeadm config images pull以验证与gcr.io注册表的连接。

现在运行

kubeadm init <args>

更多信息