Tweak kubeadm-upgrade page for indentation nits
The indentation on the page is "messy". We don't encourage implicit code blocks (4-space indentations). The nesting of contents are not properly expressed either.
This commit is contained in:
@@ -79,83 +79,87 @@ Pick a control plane node that you wish to upgrade first. It must have the `/etc
|
|||||||
|
|
||||||
**For the first control plane node**
|
**For the first control plane node**
|
||||||
|
|
||||||
- Upgrade kubeadm:
|
- Upgrade kubeadm:
|
||||||
|
|
||||||
{{< tabs name="k8s_install_kubeadm_first_cp" >}}
|
{{< tabs name="k8s_install_kubeadm_first_cp" >}}
|
||||||
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
||||||
# replace x in {{< skew currentVersion >}}.x-00 with the latest patch version
|
```shell
|
||||||
apt-mark unhold kubeadm && \
|
# replace x in {{< skew currentVersion >}}.x-00 with the latest patch version
|
||||||
apt-get update && apt-get install -y kubeadm={{< skew currentVersion >}}.x-00 && \
|
apt-mark unhold kubeadm && \
|
||||||
apt-mark hold kubeadm
|
apt-get update && apt-get install -y kubeadm={{< skew currentVersion >}}.x-00 && \
|
||||||
{{% /tab %}}
|
apt-mark hold kubeadm
|
||||||
{{% tab name="CentOS, RHEL or Fedora" %}}
|
```
|
||||||
# replace x in {{< skew currentVersion >}}.x-0 with the latest patch version
|
{{% /tab %}}
|
||||||
yum install -y kubeadm-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes
|
{{% tab name="CentOS, RHEL or Fedora" %}}
|
||||||
{{% /tab %}}
|
```shell
|
||||||
{{< /tabs >}}
|
# replace x in {{< skew currentVersion >}}.x-0 with the latest patch version
|
||||||
<br />
|
yum install -y kubeadm-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes
|
||||||
|
```
|
||||||
|
{{% /tab %}}
|
||||||
|
{{< /tabs >}}
|
||||||
|
<br />
|
||||||
|
|
||||||
- Verify that the download works and has the expected version:
|
- Verify that the download works and has the expected version:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubeadm version
|
kubeadm version
|
||||||
```
|
```
|
||||||
|
|
||||||
- Verify the upgrade plan:
|
- Verify the upgrade plan:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubeadm upgrade plan
|
kubeadm upgrade plan
|
||||||
```
|
```
|
||||||
|
|
||||||
This command checks that your cluster can be upgraded, and fetches the versions you can upgrade to.
|
This command checks that your cluster can be upgraded, and fetches the versions you can upgrade to.
|
||||||
It also shows a table with the component config version states.
|
It also shows a table with the component config version states.
|
||||||
|
|
||||||
{{< note >}}
|
{{< note >}}
|
||||||
`kubeadm upgrade` also automatically renews the certificates that it manages on this node.
|
`kubeadm upgrade` also automatically renews the certificates that it manages on this node.
|
||||||
To opt-out of certificate renewal the flag `--certificate-renewal=false` can be used.
|
To opt-out of certificate renewal the flag `--certificate-renewal=false` can be used.
|
||||||
For more information see the [certificate management guide](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs).
|
For more information see the [certificate management guide](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs).
|
||||||
{{</ note >}}
|
{{</ note >}}
|
||||||
|
|
||||||
{{< note >}}
|
{{< note >}}
|
||||||
If `kubeadm upgrade plan` shows any component configs that require manual upgrade, users must provide
|
If `kubeadm upgrade plan` shows any component configs that require manual upgrade, users must provide
|
||||||
a config file with replacement configs to `kubeadm upgrade apply` via the `--config` command line flag.
|
a config file with replacement configs to `kubeadm upgrade apply` via the `--config` command line flag.
|
||||||
Failing to do so will cause `kubeadm upgrade apply` to exit with an error and not perform an upgrade.
|
Failing to do so will cause `kubeadm upgrade apply` to exit with an error and not perform an upgrade.
|
||||||
{{</ note >}}
|
{{</ note >}}
|
||||||
|
|
||||||
- Choose a version to upgrade to, and run the appropriate command. For example:
|
- Choose a version to upgrade to, and run the appropriate command. For example:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# replace x with the patch version you picked for this upgrade
|
# replace x with the patch version you picked for this upgrade
|
||||||
sudo kubeadm upgrade apply v{{< skew currentVersion >}}.x
|
sudo kubeadm upgrade apply v{{< skew currentVersion >}}.x
|
||||||
```
|
```
|
||||||
|
|
||||||
Once the command finishes you should see:
|
Once the command finishes you should see:
|
||||||
|
|
||||||
```
|
```
|
||||||
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v{{< skew currentVersion >}}.x". Enjoy!
|
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v{{< skew currentVersion >}}.x". Enjoy!
|
||||||
|
|
||||||
[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.
|
[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.
|
||||||
```
|
```
|
||||||
|
|
||||||
- Manually upgrade your CNI provider plugin.
|
- Manually upgrade your CNI provider plugin.
|
||||||
|
|
||||||
Your Container Network Interface (CNI) provider may have its own upgrade instructions to follow.
|
Your Container Network Interface (CNI) provider may have its own upgrade instructions to follow.
|
||||||
Check the [addons](/docs/concepts/cluster-administration/addons/) page to
|
Check the [addons](/docs/concepts/cluster-administration/addons/) page to
|
||||||
find your CNI provider and see whether additional upgrade steps are required.
|
find your CNI provider and see whether additional upgrade steps are required.
|
||||||
|
|
||||||
This step is not required on additional control plane nodes if the CNI provider runs as a DaemonSet.
|
This step is not required on additional control plane nodes if the CNI provider runs as a DaemonSet.
|
||||||
|
|
||||||
**For the other control plane nodes**
|
**For the other control plane nodes**
|
||||||
|
|
||||||
Same as the first control plane node but use:
|
Same as the first control plane node but use:
|
||||||
|
|
||||||
```
|
```shell
|
||||||
sudo kubeadm upgrade node
|
sudo kubeadm upgrade node
|
||||||
```
|
```
|
||||||
|
|
||||||
instead of:
|
instead of:
|
||||||
|
|
||||||
```
|
```shell
|
||||||
sudo kubeadm upgrade apply
|
sudo kubeadm upgrade apply
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -163,46 +167,50 @@ Also calling `kubeadm upgrade plan` and upgrading the CNI provider plugin is no
|
|||||||
|
|
||||||
### Drain the node
|
### Drain the node
|
||||||
|
|
||||||
- Prepare the node for maintenance by marking it unschedulable and evicting the workloads:
|
- Prepare the node for maintenance by marking it unschedulable and evicting the workloads:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# replace <node-to-drain> with the name of your node you are draining
|
# replace <node-to-drain> with the name of your node you are draining
|
||||||
kubectl drain <node-to-drain> --ignore-daemonsets
|
kubectl drain <node-to-drain> --ignore-daemonsets
|
||||||
```
|
```
|
||||||
|
|
||||||
### Upgrade kubelet and kubectl
|
### Upgrade kubelet and kubectl
|
||||||
|
|
||||||
- Upgrade the kubelet and kubectl:
|
- Upgrade the kubelet and kubectl:
|
||||||
|
|
||||||
{{< tabs name="k8s_install_kubelet" >}}
|
{{< tabs name="k8s_install_kubelet" >}}
|
||||||
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
||||||
# replace x in {{< skew currentVersion >}}.x-00 with the latest patch version
|
```shell
|
||||||
apt-mark unhold kubelet kubectl && \
|
# replace x in {{< skew currentVersion >}}.x-00 with the latest patch version
|
||||||
apt-get update && apt-get install -y kubelet={{< skew currentVersion >}}.x-00 kubectl={{< skew currentVersion >}}.x-00 && \
|
apt-mark unhold kubelet kubectl && \
|
||||||
apt-mark hold kubelet kubectl
|
apt-get update && apt-get install -y kubelet={{< skew currentVersion >}}.x-00 kubectl={{< skew currentVersion >}}.x-00 && \
|
||||||
{{% /tab %}}
|
apt-mark hold kubelet kubectl
|
||||||
{{% tab name="CentOS, RHEL or Fedora" %}}
|
```
|
||||||
# replace x in {{< skew currentVersion >}}.x-0 with the latest patch version
|
{{% /tab %}}
|
||||||
yum install -y kubelet-{{< skew currentVersion >}}.x-0 kubectl-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes
|
{{% tab name="CentOS, RHEL or Fedora" %}}
|
||||||
{{% /tab %}}
|
```shell
|
||||||
{{< /tabs >}}
|
# replace x in {{< skew currentVersion >}}.x-0 with the latest patch version
|
||||||
<br />
|
yum install -y kubelet-{{< skew currentVersion >}}.x-0 kubectl-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes
|
||||||
|
```
|
||||||
|
{{% /tab %}}
|
||||||
|
{{< /tabs >}}
|
||||||
|
<br />
|
||||||
|
|
||||||
- Restart the kubelet:
|
- Restart the kubelet:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl restart kubelet
|
sudo systemctl restart kubelet
|
||||||
```
|
```
|
||||||
|
|
||||||
### Uncordon the node
|
### Uncordon the node
|
||||||
|
|
||||||
- Bring the node back online by marking it schedulable:
|
- Bring the node back online by marking it schedulable:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# replace <node-to-drain> with the name of your node
|
# replace <node-to-drain> with the name of your node
|
||||||
kubectl uncordon <node-to-drain>
|
kubectl uncordon <node-to-drain>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Upgrade worker nodes
|
## Upgrade worker nodes
|
||||||
|
|
||||||
@@ -211,76 +219,83 @@ without compromising the minimum required capacity for running your workloads.
|
|||||||
|
|
||||||
### Upgrade kubeadm
|
### Upgrade kubeadm
|
||||||
|
|
||||||
- Upgrade kubeadm:
|
- Upgrade kubeadm:
|
||||||
|
|
||||||
{{< tabs name="k8s_install_kubeadm_worker_nodes" >}}
|
{{< tabs name="k8s_install_kubeadm_worker_nodes" >}}
|
||||||
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
||||||
# replace x in {{< skew currentVersion >}}.x-00 with the latest patch version
|
```shell
|
||||||
apt-mark unhold kubeadm && \
|
# replace x in {{< skew currentVersion >}}.x-00 with the latest patch version
|
||||||
apt-get update && apt-get install -y kubeadm={{< skew currentVersion >}}.x-00 && \
|
apt-mark unhold kubeadm && \
|
||||||
apt-mark hold kubeadm
|
apt-get update && apt-get install -y kubeadm={{< skew currentVersion >}}.x-00 && \
|
||||||
{{% /tab %}}
|
apt-mark hold kubeadm
|
||||||
{{% tab name="CentOS, RHEL or Fedora" %}}
|
```
|
||||||
# replace x in {{< skew currentVersion >}}.x-0 with the latest patch version
|
{{% /tab %}}
|
||||||
yum install -y kubeadm-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes
|
{{% tab name="CentOS, RHEL or Fedora" %}}
|
||||||
{{% /tab %}}
|
```shell
|
||||||
{{< /tabs >}}
|
# replace x in {{< skew currentVersion >}}.x-0 with the latest patch version
|
||||||
|
yum install -y kubeadm-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes
|
||||||
|
```
|
||||||
|
{{% /tab %}}
|
||||||
|
{{< /tabs >}}
|
||||||
|
|
||||||
### Call "kubeadm upgrade"
|
### Call "kubeadm upgrade"
|
||||||
|
|
||||||
- For worker nodes this upgrades the local kubelet configuration:
|
- For worker nodes this upgrades the local kubelet configuration:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo kubeadm upgrade node
|
sudo kubeadm upgrade node
|
||||||
```
|
```
|
||||||
|
|
||||||
### Drain the node
|
### Drain the node
|
||||||
|
|
||||||
- Prepare the node for maintenance by marking it unschedulable and evicting the workloads:
|
- Prepare the node for maintenance by marking it unschedulable and evicting the workloads:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# replace <node-to-drain> with the name of your node you are draining
|
# replace <node-to-drain> with the name of your node you are draining
|
||||||
kubectl drain <node-to-drain> --ignore-daemonsets
|
kubectl drain <node-to-drain> --ignore-daemonsets
|
||||||
```
|
```
|
||||||
|
|
||||||
### Upgrade kubelet and kubectl
|
### Upgrade kubelet and kubectl
|
||||||
|
|
||||||
- Upgrade the kubelet and kubectl:
|
- Upgrade the kubelet and kubectl:
|
||||||
|
|
||||||
{{< tabs name="k8s_kubelet_and_kubectl" >}}
|
{{< tabs name="k8s_kubelet_and_kubectl" >}}
|
||||||
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
|
||||||
# replace x in {{< skew currentVersion >}}.x-00 with the latest patch version
|
```shell
|
||||||
apt-mark unhold kubelet kubectl && \
|
# replace x in {{< skew currentVersion >}}.x-00 with the latest patch version
|
||||||
apt-get update && apt-get install -y kubelet={{< skew currentVersion >}}.x-00 kubectl={{< skew currentVersion >}}.x-00 && \
|
apt-mark unhold kubelet kubectl && \
|
||||||
apt-mark hold kubelet kubectl
|
apt-get update && apt-get install -y kubelet={{< skew currentVersion >}}.x-00 kubectl={{< skew currentVersion >}}.x-00 && \
|
||||||
{{% /tab %}}
|
apt-mark hold kubelet kubectl
|
||||||
{{% tab name="CentOS, RHEL or Fedora" %}}
|
{{% /tab %}}
|
||||||
# replace x in {{< skew currentVersion >}}.x-0 with the latest patch version
|
{{% tab name="CentOS, RHEL or Fedora" %}}
|
||||||
yum install -y kubelet-{{< skew currentVersion >}}.x-0 kubectl-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes
|
```shell
|
||||||
{{% /tab %}}
|
# replace x in {{< skew currentVersion >}}.x-0 with the latest patch version
|
||||||
{{< /tabs >}}
|
yum install -y kubelet-{{< skew currentVersion >}}.x-0 kubectl-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes
|
||||||
<br />
|
```
|
||||||
|
{{% /tab %}}
|
||||||
|
{{< /tabs >}}
|
||||||
|
<br />
|
||||||
|
|
||||||
- Restart the kubelet:
|
- Restart the kubelet:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl restart kubelet
|
sudo systemctl restart kubelet
|
||||||
```
|
```
|
||||||
|
|
||||||
### Uncordon the node
|
### Uncordon the node
|
||||||
|
|
||||||
- Bring the node back online by marking it schedulable:
|
- Bring the node back online by marking it schedulable:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# replace <node-to-drain> with the name of your node
|
# replace <node-to-drain> with the name of your node
|
||||||
kubectl uncordon <node-to-drain>
|
kubectl uncordon <node-to-drain>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Verify the status of the cluster
|
## Verify the status of the cluster
|
||||||
|
|
||||||
After the kubelet is upgraded on all nodes verify that all nodes are available again by running the following command
|
After the kubelet is upgraded on all nodes verify that all nodes are available again by running
|
||||||
from anywhere kubectl can access the cluster:
|
the following command from anywhere kubectl can access the cluster:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl get nodes
|
kubectl get nodes
|
||||||
@@ -296,6 +311,7 @@ This command is idempotent and eventually makes sure that the actual state is th
|
|||||||
To recover from a bad state, you can also run `kubeadm upgrade apply --force` without changing the version that your cluster is running.
|
To recover from a bad state, you can also run `kubeadm upgrade apply --force` without changing the version that your cluster is running.
|
||||||
|
|
||||||
During upgrade kubeadm writes the following backup folders under `/etc/kubernetes/tmp`:
|
During upgrade kubeadm writes the following backup folders under `/etc/kubernetes/tmp`:
|
||||||
|
|
||||||
- `kubeadm-backup-etcd-<date>-<time>`
|
- `kubeadm-backup-etcd-<date>-<time>`
|
||||||
- `kubeadm-backup-manifests-<date>-<time>`
|
- `kubeadm-backup-manifests-<date>-<time>`
|
||||||
|
|
||||||
@@ -334,3 +350,4 @@ and post-upgrade manifest file for a certain component, a backup file for it wil
|
|||||||
|
|
||||||
- Fetches the kubeadm `ClusterConfiguration` from the cluster.
|
- Fetches the kubeadm `ClusterConfiguration` from the cluster.
|
||||||
- Upgrades the kubelet configuration for this node.
|
- Upgrades the kubelet configuration for this node.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user