Change:
This is a Bug Report Formatting is off (broken HTML rendering) on page since earlier this week (Wednesday sometime?) per my comment in - I'm adding as a separate ticket for tracking. Some fixes to Hugo were made in and but the issues on this page are persisting. Problem: Seeing poor formatting and plaintext HTML due to some incorrect syntax on the page: ! - screenshot taken in FireFox, but replicated in Chromium (Brave) as well. Page to Update: Thank you! [EDIT] heh - I switched GitHub accounts - the comments I was referring to were by my other account
thanks for the report. cc possibly caused by the hugo bump too? /sig docs cluster-lifecycle /kind bug
Relates to tracking issue
This is almost fixed. There are some leftovers related to the ordered list. /assign

Discussion:
sudo kubeadm init --control-plane-endpoint "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT" --upload-certs ``` - You can use the `--kubernetes-version` flag to set the Kubernetes version to use. <del> It is recommended that the versions of kubeadm, kubelet, kubectl and Kubernetes match. </del> <ins> It is recommended that the versions of kubeadm, kubelet, kubectl and Kubernetes match. </ins> - The `--control-plane-endpoint` flag should be set to the address or DNS and port of the load balancer. - The `--upload-certs` flag is used to upload the certificates that should be shared <del> across all the control-plane instances to the cluster. If instead, you prefer to copy certs across control-plane nodes manually or using automation tools, please remove this flag and refer to [Manual certificate distribution](#manual-certs) section below. </del> <ins> across all the control-plane instances to the cluster. If instead, you prefer to copy certs across control-plane nodes manually or using automation tools, please remove this flag and refer to [Manual certificate distribution](#manual-certs) section below. </ins> {{< note >}} The `kubeadm init` flags `--config` and `--certificate-key` cannot be mixed, therefore if you want <del> to use the [kubeadm configuration](https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2) you must add the `certificateKey` field in the appropriate config locations (under `InitConfiguration` and `JoinConfiguration: controlPlane`). </del> <ins> to use the [kubeadm configuration](https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2) you must add the `certificateKey` field in the appropriate config locations (under `InitConfiguration` and `JoinConfiguration: controlPlane`). </ins> {{< /note >}} {{< note >}}

- The output looks similar to: <del> ```sh ... You can now join any number of control-plane node by running the following command on each as a root: kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 --control-plane --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07 Please note that the certificate-key gives access to cluster sensitive data, keep it secret! As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use kubeadm init phase upload-certs to reload certs afterward. Then you can join any number of worker nodes by running the following on each as root: kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 ``` </del> <ins> ```sh ... You can now join any number of control-plane node by running the following command on each as a root: kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 --control-plane --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07 Please note that the certificate-key gives access to cluster sensitive data, keep it secret! As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use kubeadm init phase upload-certs to reload certs afterward. Then you can join any number of worker nodes by running the following on each as root: kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 ``` </ins> - Copy this output to a text file. You will need it later to join control plane and worker nodes to the cluster. - When `--upload-certs` is used with `kubeadm init`, the certificates of the primary control plane <del> are encrypted and uploaded in the `kubeadm-certs` Secret. </del> <ins> are encrypted and uploaded in the `kubeadm-certs` Secret. </ins> - To re-upload the certificates and generate a new decryption key, use the following command on a control plane node that is already joined to the cluster: <del> ```sh sudo kubeadm init phase upload-certs --upload-certs ``` </del> <ins> ```sh sudo kubeadm init phase upload-certs --upload-certs ``` </ins> - You can also specify a custom `--certificate-key` during `init` that can later be used by `join`. To generate such a key you can use the following command: <del> ```sh kubeadm alpha certs certificate-key ``` </del> <ins> ```sh kubeadm alpha certs certificate-key ``` </ins> {{< note >}} The `kubeadm-certs` Secret and decryption key expire after two hours.

{{< /caution >}} 1.  Apply the CNI plugin of your choice: <del> [Follow these instructions](/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network) to install the CNI provider. Make sure the configuration corresponds to the Pod CIDR specified in the kubeadm configuration file if applicable. </del> <ins> [Follow these instructions](/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network) to install the CNI provider. Make sure the configuration corresponds to the Pod CIDR specified in the kubeadm configuration file if applicable. </ins> In this example we are using Weave Net:

- The `--control-plane` flag tells `kubeadm join` to create a new control plane. - The `--certificate-key ...` will cause the control plane certificates to be downloaded <del> from the `kubeadm-certs` Secret in the cluster and be decrypted using the given key. </del> <ins> from the `kubeadm-certs` Secret in the cluster and be decrypted using the given key. </ins> ## External etcd nodes