kubeadm: fix some issues in the upgrade-1.13 doc (#11629)

- use "control plane" instead of "master".
- upgrade a kubelet on the CP node only after the CP was upgraded.
- also instruct the user to update to the latest patch version of 1.13.
pull/12026/head
Lubomir I. Ivanov 2019-01-03 02:59:47 +02:00 committed by Kubernetes Prow Robot
parent 1e736d9555
commit ffa36a9251
1 changed files with 81 additions and 20 deletions

View File

@ -33,18 +33,38 @@ This page explains how to upgrade a Kubernetes cluster created with `kubeadm` fr
{{% capture steps %}} {{% capture steps %}}
## Upgrade the control plane ## Determine which version to upgrade to
1. On your master node, upgrade kubeadm: 1. Find the latest stable 1.13 version:
{{< tabs name="k8s_install" >}} {{< tabs name="k8s_install_versions" >}}
{{% tab name="Ubuntu, Debian or HypriotOS" %}} {{% tab name="Ubuntu, Debian or HypriotOS" %}}
apt-mark unhold kubelet kubeadm && \ apt update
apt-get update && apt-get upgrade -y kubelet kubeadm && \ apt-cache policy kubeadm
apt-mark hold kubelet kubeadm # find the latest 1.13 version in the list
# it should look like 1.13.x-00, where x is the latest patch
{{% /tab %}} {{% /tab %}}
{{% tab name="CentOS, RHEL or Fedora" %}} {{% tab name="CentOS, RHEL or Fedora" %}}
yum upgrade -y kubeadm --disableexcludes=kubernetes yum list --showduplicates kubeadm --disableexcludes=kubernetes
# find the latest 1.13 version in the list
# it should look like 1.13.x-0, where x is the latest patch
{{% /tab %}}
{{< /tabs >}}
## Upgrade the control plane node
1. On your control plane node, upgrade kubeadm:
{{< tabs name="k8s_install_kubeadm" >}}
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
# replace x in 1.13.x-00 with the latest patch version
apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm=1.13.x-00 && \
apt-mark hold kubeadm
{{% /tab %}}
{{% tab name="CentOS, RHEL or Fedora" %}}
# replace x in 1.13.x-0 with the latest patch version
yum install -y kubeadm-1.13.x-0 --disableexcludes=kubernetes
{{% /tab %}} {{% /tab %}}
{{< /tabs >}} {{< /tabs >}}
@ -182,7 +202,39 @@ This page explains how to upgrade a Kubernetes cluster created with `kubeadm` fr
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.
## Upgrade master and node packages 1. Upgrade the kubelet on the control plane node:
{{< tabs name="k8s_install_kubelet" >}}
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
# replace x in 1.13.x-00 with the latest patch version
apt-mark unhold kubelet && \
apt-get update && apt-get install -y kubelet=1.13.x-00 && \
apt-mark hold kubelet
{{% /tab %}}
{{% tab name="CentOS, RHEL or Fedora" %}}
# replace x in 1.13.x-0 with the latest patch version
yum install -y kubelet-1.13.x-0 --disableexcludes=kubernetes
{{% /tab %}}
{{< /tabs >}}
## Ugrade kubectl on all nodes
1. Upgrade kubectl on all nodes:
{{< tabs name="k8s_install_kubectl" >}}
{{% tab name="Ubuntu, Debian or HypriotOS" %}}
# replace x in 1.13.x-00 with the latest patch version
apt-mark unhold kubectl && \
apt-get update && apt-get install -y kubectl=1.13.x-00 && \
apt-mark hold kubectl
{{% /tab %}}
{{% tab name="CentOS, RHEL or Fedora" %}}
# replace x in 1.13.x-0 with the latest patch version
yum install -y kubectl-1.13.x-0 --disableexcludes=kubernetes
{{% /tab %}}
{{< /tabs >}}
## Drain control plane and worker nodes
1. Prepare each node for maintenance by marking it unschedulable and evicting the workloads. Run: 1. Prepare each node for maintenance by marking it unschedulable and evicting the workloads. Run:
@ -190,7 +242,7 @@ This page explains how to upgrade a Kubernetes cluster created with `kubeadm` fr
kubectl drain $NODE --ignore-daemonsets kubectl drain $NODE --ignore-daemonsets
``` ```
On the master node, you must add `--ignore-daemonsets`: On the control plane node, you must add `--ignore-daemonsets`:
```shell ```shell
kubectl drain ip-172-31-85-18 kubectl drain ip-172-31-85-18
@ -209,27 +261,36 @@ This page explains how to upgrade a Kubernetes cluster created with `kubeadm` fr
node "ip-172-31-85-18" drained node "ip-172-31-85-18" drained
``` ```
## Upgrade the kubelet config on worker nodes
1. On each node except the control plane node, upgrade the kubelet config:
```shell
kubeadm upgrade node config --kubelet-version v1.13.x
```
Replace `x` with the patch version you picked for this ugprade.
## Upgrade kubeadm and the kubelet on worker nodes
1. Upgrade the Kubernetes package version on each `$NODE` node by running the Linux package manager for your distribution: 1. Upgrade the Kubernetes package version on each `$NODE` node by running the Linux package manager for your distribution:
{{< tabs name="k8s_install" >}} {{< tabs name="k8s_kubelet_and_kubeadm" >}}
{{% tab name="Ubuntu, Debian or HypriotOS" %}} {{% tab name="Ubuntu, Debian or HypriotOS" %}}
# replace x in 1.13.x-00 with the latest patch version
apt-get update apt-get update
apt-get upgrade -y kubelet kubeadm apt-get install -y kubelet=1.13.x-00 kubeadm=1.13.x-00
{{% /tab %}} {{% /tab %}}
{{% tab name="CentOS, RHEL or Fedora" %}} {{% tab name="CentOS, RHEL or Fedora" %}}
yum upgrade -y kubelet kubeadm --disableexcludes=kubernetes # replace x in 1.13.x-0 with the latest patch version
yum install -y kubelet-1.13.x-0 kubeadm-1.13.x-0 --disableexcludes=kubernetes
{{% /tab %}} {{% /tab %}}
{{< /tabs >}} {{< /tabs >}}
## Upgrade kubelet on each node ## Restart the kubelet for all nodes
1. On each node except the master node, upgrade the kubelet config: 1. Restart the kubelet process for all nodes:
```shell
kubeadm upgrade node config --kubelet-version $(kubelet --version | cut -d ' ' -f 2)
```
1. Restart the kubelet process:
```shell ```shell
systemctl restart kubelet systemctl restart kubelet