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

7.4 KiB

title weight
kubeadm init phase 90

kubeadm init phase enables you to invoke atomic steps of the bootstrap process. Hence, you can let kubeadm do some of the work and you can fill in the gaps if you wish to apply customization.

kubeadm init phase is consistent with the kubeadm init workflow, and behind the scene both use the same code.

kubeadm init phase preflight

Using this command you can execute preflight checks on a control-plane node.

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

kubeadm init phase kubelet-start

This phase will write the kubelet configuration file and environment file and then start the kubelet.

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

kubeadm init phase certs

Can be used to create all required certificates by 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

You can create all required kubeconfig files by calling the all subcommand or call them individually.

{{< 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

Using this phase you can create all required static Pod files for the control plane components.

{{< 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

Use the following phase to create a local etcd instance based on a static Pod file.

{{< 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

You can use this command to upload the kubeadm configuration to your cluster. Alternatively, you can use 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

Use the following phase to upload control-plane certificates to the cluster. By default the certs and encryption key expire after two hours.

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

kubeadm init phase mark-control-plane

Use the following phase to label and taint the node with the node-role.kubernetes.io/master="" key-value pair.

{{< 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

Use the following phase to configure bootstrap tokens.

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

kubeadm init phase addon

You can install all the available addons with the all subcommand, or install them selectively.

{{< 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 >}}

To use kube-dns instead of CoreDNS you have to pass a configuration file:

# for installing a DNS addon only
kubeadm init phase addon coredns --config=someconfig.yaml

The file has to contain a dns field inClusterConfiguration and also a type for the addon - kube-dns (default value is CoreDNS).

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

Please note that kube-dns usage with kubeadm is deprecated as of v1.18 and will be removed in a future release.

For more details on each field in the v1beta2 configuration you can navigate to our [API reference pages.] (https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2)

What's next