website/content/zh/docs/reference/setup-tools/kubeadm/kubeadm-init-phase.md

11 KiB
Raw Blame History

title weight
kubeadm init phase 90

kubeadm init phase 能确保调用引导过程的原子步骤。因此,如果希望自定义应用,则可以让 kubeadm 做一些工作,然后填补空白。

kubeadm init phasekubeadm init 工作流程一致,后台都使用相同的代码。

kubeadm init phase preflight

使用此命令可以在控制平面节点上执行启动前检查。

{{< tabs name="tab-preflight" >}} {{< tab name="preflight" include="generated/kubeadm_init_phase_preflight.md" />}} {{< /tabs >}}

kubeadm init phase kubelet-start

此阶段将检查 kubelet 配置文件和环境文件,然后启动 kubelet。

{{< tabs name="tab-kubelet-start" >}} {{< tab name="kubelet-start" include="generated/kubeadm_init_phase_kubelet-start.md" />}} {{< /tabs >}}

kubeadm init phase certs

该阶段可用于创建 kubeadm 所需的所有证书。

{{< tabs name="tab-certs" >}} {{< tab name="certs" include="generated/kubeadm_init_phase_certs.md" />}} {{< tab name="all" include="generated/kubeadm_init_phase_certs_all.md" />}} {{< tab name="ca" include="generated/kubeadm_init_phase_certs_ca.md" />}} {{< tab name="apiserver" include="generated/kubeadm_init_phase_certs_apiserver.md" />}} {{< tab name="apiserver-kubelet-client" include="generated/kubeadm_init_phase_certs_apiserver-kubelet-client.md" />}} {{< tab name="front-proxy-ca" include="generated/kubeadm_init_phase_certs_front-proxy-ca.md" />}} {{< tab name="front-proxy-client" include="generated/kubeadm_init_phase_certs_front-proxy-client.md" />}} {{< tab name="etcd-ca" include="generated/kubeadm_init_phase_certs_etcd-ca.md" />}} {{< tab name="etcd-server" include="generated/kubeadm_init_phase_certs_etcd-server.md" />}} {{< tab name="etcd-peer" include="generated/kubeadm_init_phase_certs_etcd-peer.md" />}} {{< tab name="healthcheck-client" include="generated/kubeadm_init_phase_certs_etcd-healthcheck-client.md" />}} {{< tab name="apiserver-etcd-client" include="generated/kubeadm_init_phase_certs_apiserver-etcd-client.md" />}} {{< tab name="sa" include="generated/kubeadm_init_phase_certs_sa.md" />}} {{< /tabs >}}

kubeadm init phase kubeconfig

可以通过调用 all 子命令来创建所有必需的 kubeconfig 文件,或者分别调用它们。

{{< tabs name="tab-kubeconfig" >}} {{< tab name="kubeconfig" include="generated/kubeadm_init_phase_kubeconfig.md" />}} {{< tab name="all" include="generated/kubeadm_init_phase_kubeconfig_all.md" />}} {{< tab name="admin" include="generated/kubeadm_init_phase_kubeconfig_admin.md" />}} {{< tab name="kubelet" include="generated/kubeadm_init_phase_kubeconfig_kubelet.md" />}} {{< tab name="controller-manager" include="generated/kubeadm_init_phase_kubeconfig_controller-manager.md" />}} {{< tab name="scheduler" include="generated/kubeadm_init_phase_kubeconfig_scheduler.md" />}} {{< /tabs >}}

kubeadm init phase control-plane

使用此阶段,可以为控制平面组件创建所有必需的静态 Pod 文件。

{{< tabs name="tab-control-plane" >}} {{< tab name="control-plane" include="generated/kubeadm_init_phase_control-plane.md" />}} {{< tab name="all" include="generated/kubeadm_init_phase_control-plane_all.md" />}} {{< tab name="apiserver" include="generated/kubeadm_init_phase_control-plane_apiserver.md" />}} {{< tab name="controller-manager" include="generated/kubeadm_init_phase_control-plane_controller-manager.md" />}} {{< tab name="scheduler" include="generated/kubeadm_init_phase_control-plane_scheduler.md" />}} {{< /tabs >}}

kubeadm init phase etcd

根据静态 Pod 文件,使用以下阶段创建本地 etcd 实例。

{{< tabs name="tab-etcd" >}} {{< tab name="etcd" include="generated/kubeadm_init_phase_etcd.md" />}} {{< tab name="local" include="generated/kubeadm_init_phase_etcd_local.md" />}} {{< /tabs >}}

kubeadm init phase upload-config

可以使用此命令将 kubeadm 配置文件上传到集群。或者,使用 kubeadm config 方式。

{{< tabs name="upload-config" >}} {{< tab name="upload-config" include="generated/kubeadm_init_phase_upload-config.md" />}} {{< tab name="all" include="generated/kubeadm_init_phase_upload-config_all.md" />}} {{< tab name="kubeadm" include="generated/kubeadm_init_phase_upload-config_kubeadm.md" />}} {{< tab name="kubelet" include="generated/kubeadm_init_phase_upload-config_kubelet.md" />}} {{< /tabs >}}

kubeadm init phase upload-certs

使用以下阶段将控制平面证书上传到集群。默认情况下,证书和加密密钥会在两个小时后过期。

{{< tabs name="tab-upload-certs" >}} {{< tab name="upload-certs" include="generated/kubeadm_init_phase_upload-certs.md" />}} {{< /tabs >}}

kubeadm init phase mark-control-plane

使用以下阶段来给具有 node-role.kubernetes.io/master="" 键值对的节点打标签label和记录污点taint

{{< tabs name="tab-mark-control-plane" >}} {{< tab name="mark-control-plane" include="generated/kubeadm_init_phase_mark-control-plane.md" />}} {{< /tabs >}}

kubeadm init phase bootstrap-token

使用以下阶段来配置引导令牌。

{{< tabs name="tab-bootstrap-token" >}} {{< tab name="bootstrap-token" include="generated/kubeadm_init_phase_bootstrap-token.md" />}} {{< /tabs >}}

kubeadm init phase addon

可以使用 all 子命令安装所有可用的插件,或者有选择性地安装它们。

{{< tabs name="tab-addon" >}} {{< tab name="addon" include="generated/kubeadm_init_phase_addon.md" />}} {{< tab name="all" include="generated/kubeadm_init_phase_addon_all.md" />}} {{< tab name="coredns" include="generated/kubeadm_init_phase_addon_coredns.md" />}} {{< tab name="kube-proxy" include="generated/kubeadm_init_phase_addon_kube-proxy.md" />}} {{< /tabs >}}

要使用 kube-dns 代替 CoreDNS必须传递一个配置文件

# 仅用于安装 DNS 插件
kubeadm init phase addon coredns --config=someconfig.yaml
# 用于创建完整的控制平面节点
kubeadm init --config=someconfig.yaml
# 用于列出或者拉取镜像
kubeadm config images list/pull --config=someconfig.yaml
# 升级
kubeadm upgrade apply --config=someconfig.yaml

该文件必须在 ClusterConfiguration 中包含一个 DNS 字段,以及包含一个插件的类型 - kube-dns(默认值为 CoreDNS)。

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
dns:
  type: "kube-dns"

有关 v1beta2 配置中每个字段的更多详细信息,可以访问 API

接下来