2018-05-05 16:00:51 +00:00
---
2018-05-21 15:55:51 +00:00
reviewers:
2018-05-05 16:00:51 +00:00
- mikedanese
- luxas
- jbeda
title: kubeadm alpha
2018-05-08 19:08:53 +00:00
weight: 90
2018-05-05 16:00:51 +00:00
---
{{< caution > }}
`kubeadm alpha` provides a preview of a set of features made available for gathering feedback
from the community. Please try it out and give us feedback!
{{< / caution > }}
In v1.8.0, kubeadm introduced the `kubeadm alpha phase` command with the aim of making kubeadm more modular. This modularity enables you to invoke atomic sub-steps of the bootstrap process; you can let kubeadm do some parts and fill in yourself where you need customizations.
2018-05-08 19:08:53 +00:00
`kubeadm alpha phase` is consistent with [kubeadm init workflow ](kubeadm-init.md#init-workflow ),
2018-05-05 16:00:51 +00:00
and behind the scene both use the same code.
* [kubeadm alpha phase preflight ](#cmd-phase-preflight )
* [kubeadm alpha phase certs ](#cmd-phase-certs )
* [kubeadm alpha phase kubeconfig ](#cmd-phase-kubeconfig )
* [kubeadm alpha phase controlplane ](#cmd-phase-controlplane )
* [kubeadm alpha phase etcd ](#cmd-phase-etcd )
* [kubeadm alpha phase mark-master ](#cmd-phase-mark-master )
* [kubeadm alpha phase bootstrap-token ](#cmd-phase-bootstrap-token )
* [kubeadm alpha phase upload-config ](#cmd-phase-upload-config )
* [kubeadm alpha phase addon ](#cmd-phase-addon )
* [kubeadm alpha phase selfhosting ](#cmd-phase-self-hosting )
## kubeadm alpha phase preflight {#cmd-phase-preflight}
You can execute preflight checks both for the master node, like in `kubeadm init` , or for the worker node
like in `kubeadm join` .
{{< tabs name = "tab-preflight" > }}
{{< tab name = "master" include = "generated/kubeadm_alpha_phase_preflight_master.md" / > }}
{{< tab name = "node" include = "generated/kubeadm_alpha_phase_preflight_node.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase certs {#cmd-phase-certs}
You can create all required certificates with the `all` subcommand or selectively create certificates.
{{< tabs name = "tab-certs" > }}
{{< tab name = "all" include = "generated/kubeadm_alpha_phase_certs_all.md" / > }}
{{< tab name = "ca" include = "generated/kubeadm_alpha_phase_certs_ca.md" / > }}
{{< tab name = "apiserver" include = "generated/kubeadm_alpha_phase_certs_apiserver.md" / > }}
{{< tab name = "apiserver-kubelet-client" include = "generated/kubeadm_alpha_phase_certs_apiserver-kubelet-client.md" / > }}
{{< tab name = "sa" include = "generated/kubeadm_alpha_phase_certs_sa.md" / > }}
{{< tab name = "front-proxy-ca" include = "generated/kubeadm_alpha_phase_certs_front-proxy-ca.md" / > }}
{{< tab name = "front-proxy-client" include = "generated/kubeadm_alpha_phase_certs_front-proxy-client.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase kubeconfig {#cmd-phase-kubeconfig}
You can create all required kubeconfig files with the `all` subcommand, or selectively create the files.
Additionally, the `user` subcommand supports the creation of kubeconfig files for additional users.
{{< tabs name = "tab-kubeconfig" > }}
{{< tab name = "all" include = "generated/kubeadm_alpha_phase_kubeconfig_all.md" / > }}
{{< tab name = "admin" include = "generated/kubeadm_alpha_phase_kubeconfig_admin.md" / > }}
{{< tab name = "kubelet" include = "generated/kubeadm_alpha_phase_kubeconfig_kubelet.md" / > }}
{{< tab name = "controller-manager" include = "generated/kubeadm_alpha_phase_kubeconfig_controller-manager.md" / > }}
{{< tab name = "scheduler" include = "generated/kubeadm_alpha_phase_kubeconfig_scheduler.md" / > }}
{{< tab name = "user" include = "generated/kubeadm_alpha_phase_kubeconfig_user.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase controlplane {#cmd-phase-controlplane}
2018-05-08 19:08:53 +00:00
You can create all required static Pod files for the control plane components with the `all` subcommand,
2018-05-05 16:00:51 +00:00
or selectively create the files.
{{< tabs name = "tab-controlplane" > }}
{{< tab name = "all" include = "generated/kubeadm_alpha_phase_controlplane_all.md" / > }}
{{< tab name = "apiserver" include = "generated/kubeadm_alpha_phase_controlplane_apiserver.md" / > }}
{{< tab name = "controller-manager" include = "generated/kubeadm_alpha_phase_controlplane_controller-manager.md" / > }}
{{< tab name = "scheduler" include = "generated/kubeadm_alpha_phase_controlplane_scheduler.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase etcd {#cmd-phase-etcd}
Use the following command to create a self-hosted, local etcd instance based on a static Pod file.
{{< tabs name = "tab-etcd" > }}
{{< tab name = "etcd local" include = "generated/kubeadm_alpha_phase_etcd_local.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase mark-master {#cmd-phase-mark-master}
Use the following command to label and taint the node with the `node-role.kubernetes.io/master=""` key-value pair.
{{< tabs name = "tab-mark-master" > }}
{{< tab name = "mark-master" include = "generated/kubeadm_alpha_phase_mark-master.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase bootstrap-token {#cmd-phase-bootstrap-token}
Use the following actions to fully configure bootstrap tokens.
2018-05-08 19:08:53 +00:00
You can fully configure bootstrap tokens with the `all` subcommand,
2018-05-05 16:00:51 +00:00
or selectively configure single elements.
{{< tabs name = "tab-bootstrap-token" > }}
{{< tab name = "all" include = "generated/kubeadm_alpha_phase_bootstrap-token_all.md" / > }}
{{< tab name = "create" include = "generated/kubeadm_alpha_phase_bootstrap-token_create.md" / > }}
{{< tab name = "cluster-info" include = "generated/kubeadm_alpha_phase_bootstrap-token_cluster-info.md " / > }}
{{< tab name = "node allow-auto-approve" include = "generated/kubeadm_alpha_phase_bootstrap-token_node_allow-auto-approve.md" / > }}
{{< tab name = "node allow-post-csrs" include = "generated/kubeadm_alpha_phase_bootstrap-token_node_allow-post-csrs.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase upload-config {#cmd-phase-upload-config}
You can use this command to upload the kubeadm configuration to your cluster.
Alternatively, you can use [kubeadm config ](kubeadm-config.md ).
{{< tabs name = "upload-config" > }}
{{< tab name = "mark-master" include = "generated/kubeadm_alpha_phase_upload-config.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase addon {#cmd-phase-addon}
2018-05-08 19:08:53 +00:00
You can install all the available addons with the `all` subcommand, or
2018-05-05 16:00:51 +00:00
install them selectively.
Please note that if kubeadm is invoked with `--feature-gates=CoreDNS=true` , [CoreDNS ](https://coredns.io/ ) is installed instead of `kube-dns` .
{{< tabs name = "tab-addon" > }}
{{< tab name = "all" include = "generated/kubeadm_alpha_phase_addon_all.md" / > }}
{{< tab name = "kube-proxy" include = "generated/kubeadm_alpha_phase_addon_kube-proxy.md" / > }}
{{< tab name = "kube-dns" include = "generated/kubeadm_alpha_phase_addon_kube-dns.md" / > }}
{{< / tabs > }}
## kubeadm alpha phase self-hosting {#cmd-phase-self-hosting}
{{< caution > }}
**Caution:** Self-hosting is an alpha feature. See [kubeadm init ](kubeadm-init.md ) documentation for self-hosting limitations.
{{< / caution > }}
{{< tabs name = "tab-self-hosting" > }}
{{< tab name = "self-hosting" include = "generated/kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md" / > }}
{{< / tabs > }}
## What's next
* [kubeadm init ](kubeadm-init.md ) to bootstrap a Kubernetes master node
* [kubeadm join ](kubeadm-join.md ) to connect a node to the cluster
* [kubeadm reset ](kubeadm-reset.md ) to revert any changes made to this host by `kubeadm init` or `kubeadm join`