运行此命令以安装 Kubernetes 控制平面。

概要

运行此命令来搭建 Kubernetes 控制平面节点。

"init" 命令执行以下阶段:

preflight                    预检
certs                        生成证书
  /ca                          生成自签名根 CA 用于配置其他 kubernetes 组件
  /apiserver                   生成 apiserver 的证书
  /apiserver-kubelet-client    生成 apiserver 连接到 kubelet 的证书
  /front-proxy-ca              生成前端代理自签名CA(扩展apiserver)
  /front-proxy-client          生成前端代理客户端的证书(扩展 apiserver)
  /etcd-ca                     生成 etcd 自签名 CA
  /etcd-server                 生成 etcd 服务器证书
  /etcd-peer                   生成 etcd 节点相互通信的证书
  /etcd-healthcheck-client     生成 etcd 健康检查的证书
  /apiserver-etcd-client       生成 apiserver 访问 etcd 的证书
  /sa                          生成用于签署服务帐户令牌的私钥和公钥
kubeconfig                   生成建立控制平面和管理所需的所有 kubeconfig 文件
  /admin                       生成一个 kubeconfig 文件供管理员使用以及供 kubeadm 本身使用
  /super-admin                 为超级管理员生成 kubeconfig 文件
  /kubelet                     为 kubelet 生成一个 kubeconfig 文件,*仅*用于集群引导
  /controller-manager          生成 kubeconfig 文件供控制器管理器使用
  /scheduler                   生成 kubeconfig 文件供调度程序使用
etcd                         为本地 etcd 生成静态 Pod 清单文件
  /local                       为本地单节点本地 etcd 实例生成静态 Pod 清单文件
control-plane                生成建立控制平面所需的所有静态 Pod 清单文件
  /apiserver                   生成 kube-apiserver 静态 Pod 清单
  /controller-manager          生成 kube-controller-manager 静态 Pod 清单
  /scheduler                   生成 kube-scheduler 静态 Pod 清单
kubelet-start                写入 kubelet 设置并启动(或重启) kubelet
upload-config                将 kubeadm 和 kubelet 配置上传到 ConfigMap
  /kubeadm                     将 kubeadm 集群配置上传到 ConfigMap
  /kubelet                     将 kubelet 组件配置上传到 ConfigMap
upload-certs                 将证书上传到 kubeadm-certs
mark-control-plane           将节点标记为控制面
bootstrap-token              生成用于将节点加入集群的引导令牌
kubelet-finalize             在 TLS 引导后更新与 kubelet 相关的设置
  /experimental-cert-rotation  启用 kubelet 客户端证书轮换
addon                        安装用于通过一致性测试所需的插件
  /coredns                     将 CoreDNS 插件安装到 Kubernetes 集群
  /kube-proxy                  将 kube-proxy 插件安装到 Kubernetes 集群
show-join-command            显示控制平面和工作节点的加入命令
kubeadm init [flags]

选项

--apiserver-advertise-address string

API 服务器所公布的其正在监听的 IP 地址。如果未设置,则使用默认网络接口。

--apiserver-bind-port int32     默认值:6443

API 服务器绑定的端口。

--apiserver-cert-extra-sans strings

用于 API Server 服务证书的可选附加主题备用名称(SAN)。可以是 IP 地址和 DNS 名称。

--cert-dir string     默认值:"/etc/kubernetes/pki"

保存和存储证书的路径。

--certificate-key string

用于加密 kubeadm-certs Secret 中的控制平面证书的密钥。 证书密钥为十六进制编码的字符串,是大小为 32 字节的 AES 密钥。

--config string

kubeadm 配置文件的路径。

--control-plane-endpoint string

为控制平面指定一个稳定的 IP 地址或 DNS 名称。

--cri-socket string

要连接的 CRI 套接字的路径。如果为空,则 kubeadm 将尝试自动检测此值; 仅当安装了多个 CRI 或具有非标准 CRI 套接字时,才使用此选项。

--dry-run

不做任何更改;只输出将要执行的操作。

--feature-gates string
一组用来描述各种功能特性的键值(key=value)对。选项是:
EtcdLearnerMode=true|false (BETA - 默认值=true)
PublicKeysECDSA=true|false (DEPRECATED - 默认值=false)
RootlessControlPlane=true|false (ALPHA - 默认值=false)
UpgradeAddonsBeforeControlPlane=true|false (DEPRECATED - 默认值=false)
WaitForAllControlPlaneComponents=true|false (ALPHA - 默认值=false)
-h, --help

init 操作的帮助命令。

--ignore-preflight-errors strings

错误将显示为警告的检查列表;例如:'IsPrivilegedUser,Swap'。取值为 'all' 时将忽略检查中的所有错误。

--image-repository string     默认值:"registry.k8s.io"

选择用于拉取控制平面镜像的容器仓库。

--kubernetes-version string     默认值:"stable-1"

为控制平面选择一个特定的 Kubernetes 版本。

--node-name string

指定节点的名称。

--patches string

它包含名为 "target[suffix][+patchtype].extension" 的文件的目录的路径。 例如,"kube-apiserver0+merge.yaml"或仅仅是 "etcd.json"。 "target" 可以是 "kube-apiserver"、"kube-controller-manager"、"kube-scheduler"、"etcd"、"kubeletconfiguration" 之一。 "patchtype" 可以是 "strategic"、"merge" 或者 "json" 之一, 并且它们与 kubectl 支持的补丁格式相同。 默认的 "patchtype" 是 "strategic"。 "extension" 必须是"json" 或"yaml"。 "suffix" 是一个可选字符串,可用于确定首先按字母顺序应用哪些补丁。

--pod-network-cidr string

指明 Pod 网络可以使用的 IP 地址段。如果设置了这个参数,控制平面将会为每一个节点自动分配 CIDR。

--service-cidr string     默认值:"10.96.0.0/12"

为服务的虚拟 IP 地址另外指定 IP 地址段。

--service-dns-domain string     默认值:"cluster.local"
为服务另外指定域名,例如:"myorg.internal"。
--skip-certificate-key-print

不要打印用于加密控制平面证书的密钥。

--skip-phases strings

要跳过的阶段列表。

--skip-token-print

跳过打印 'kubeadm init' 生成的默认引导令牌。

--token string

这个令牌用于建立控制平面节点与工作节点间的双向通信。 格式为 [a-z0-9]{6}.[a-z0-9]{16} - 示例:abcdef.0123456789abcdef

--token-ttl duration     默认值:24h0m0s

令牌被自动删除之前的持续时间(例如 1s,2m,3h)。如果设置为 '0',则令牌将永不过期。

--upload-certs

将控制平面证书上传到 kubeadm-certs Secret。

从父命令继承的选项

--rootfs string

[实验] 到 '真实' 主机根文件系统的路径。


最后修改 October 15, 2024 at 3:18 AM PST: Merge pull request #48346 from windsonsea/metricy (50a9341)