Change:
This is a Feature Request <!-- Please only use this template for submitting feature/enhancement requests --<!-- See for guidance on writing an actionable issue description. --What would you like to be Add a page titled “Upgrading Linux Nodes” Why is this needed We have an for Windows. Someone who runs Linux worker nodes may well want to see a page just like that, but explaining what to do for their Linux-based node OS. It is OK to adapt existing pages and to link to them. Comments /sig cluster-lifecycle /priority backlog /language en
Hi there is a section on in the , which has the content for upgrading Linux worker nodes. I wonder do you want a separate document for it?
Yes. This issue is a request for a document just like but with Linux in the title. It is OK to adapt existing pages and to link to them.
right, i can recall the section only says: From the Windows node, upgrade kubeadm: and no addition for another os. This will be helpful. are you working on it?
Thanks, for the information!
Hi thanks for your comments. Yeah, I am working on it. I will soon open a PR for it.
/assign
/triage accepted
I have raised a PR: Please take a look!

Discussion:
The upgrade procedure on worker nodes should be executed one node at a time or few nodes at a time, without compromising the minimum required capacity for running your workloads. <del> ### Upgrade kubeadm </del> <ins> The following pages show how to  Upgrade Linux and Windows worker nodes: </ins> <del> - Upgrade kubeadm: {{< tabs name="k8s_install_kubeadm_worker_nodes" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} ```shell # replace x in {{< skew currentVersion >}}.x-00 with the latest patch version apt-mark unhold kubeadm &&  apt-get update && apt-get install -y kubeadm={{< skew currentVersion >}}.x-00 &&  apt-mark hold kubeadm ``` {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} ```shell # 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" - For worker nodes this upgrades the local kubelet configuration: ```shell sudo kubeadm upgrade node ``` ### Drain the node - Prepare the node for maintenance by marking it unschedulable and evicting the workloads: ```shell # replace <node-to-drain> with the name of your node you are draining kubectl drain <node-to-drain> --ignore-daemonsets ``` ### Upgrade kubelet and kubectl - Upgrade the kubelet and kubectl: {{< tabs name="k8s_kubelet_and_kubectl" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} ```shell # replace x in {{< skew currentVersion >}}.x-00 with the latest patch version apt-mark unhold kubelet kubectl &&  apt-get update && apt-get install -y kubelet={{< skew currentVersion >}}.x-00 kubectl={{< skew currentVersion >}}.x-00 &&  apt-mark hold kubelet kubectl ``` {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} ```shell # replace x in {{< skew currentVersion >}}.x-0 with the latest patch version yum install -y kubelet-{{< skew currentVersion >}}.x-0 kubectl-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes ``` {{% /tab %}} {{< /tabs >}} <br /> - Restart the kubelet: ```shell sudo systemctl daemon-reload sudo systemctl restart kubelet ``` ### Uncordon the node - Bring the node back online by marking it schedulable: ```shell # replace <node-to-uncordon> with the name of your node kubectl uncordon <node-to-uncordon> ``` </del> <ins> * [Upgrade Linux nodes](/docs/tasks/administer-cluster/kubeadm/upgrading-linux-nodes/) * [Upgrade Windows nodes](/docs/tasks/administer-cluster/kubeadm/upgrading-windows-nodes/) </ins> ## Verify the status of the cluster

<ins> --- title: Upgrading Linux nodes content_type: task weight: 100 --- <!-- overview --> This page explains how to upgrade a Linux Worker Nodes created with kubeadm. ## {{% heading "prerequisites" %}} {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} * Familiarize yourself with [the process for upgrading the rest of your kubeadm cluster](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade). You will want to upgrade the control plane nodes before upgrading your Linux Worker nodes. <!-- steps --> ## Upgrading worker nodes ### Upgrade kubeadm Upgrade kubeadm: {{< tabs name="k8s_install_kubeadm_worker_nodes" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} ```shell # replace x in {{< skew currentVersion >}}.x-00 with the latest patch version apt-mark unhold kubeadm &&  apt-get update && apt-get install -y kubeadm={{< skew currentVersion >}}.x-00 &&  apt-mark hold kubeadm ``` {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} ```shell # 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" - For worker nodes this upgrades the local kubelet configuration: ```shell sudo kubeadm upgrade node ``` ### Drain the node - Prepare the node for maintenance by marking it unschedulable and evicting the workloads: ```shell # replace <node-to-drain> with the name of your node you are draining kubectl drain <node-to-drain> --ignore-daemonsets ``` ### Upgrade kubelet and kubectl - Upgrade the kubelet and kubectl: {{< tabs name="k8s_kubelet_and_kubectl" >}} {{% tab name="Ubuntu, Debian or HypriotOS" %}} ```shell # replace x in {{< skew currentVersion >}}.x-00 with the latest patch version apt-mark unhold kubelet kubectl &&  apt-get update && apt-get install -y kubelet={{< skew currentVersion >}}.x-00 kubectl={{< skew currentVersion >}}.x-00 &&  apt-mark hold kubelet kubectl ``` {{% /tab %}} {{% tab name="CentOS, RHEL or Fedora" %}} ```shell # replace x in {{< skew currentVersion >}}.x-0 with the latest patch version yum install -y kubelet-{{< skew currentVersion >}}.x-0 kubectl-{{< skew currentVersion >}}.x-0 --disableexcludes=kubernetes ``` {{% /tab %}} {{< /tabs >}} <br /> - Restart the kubelet: ```shell sudo systemctl daemon-reload sudo systemctl restart kubelet ``` ### Uncordon the node - Bring the node back online by marking it schedulable: ```shell # replace <node-to-uncordon> with the name of your node kubectl uncordon <node-to-uncordon> ``` ## {{% heading "whatsnext" %}} * See how to [Upgrade Windows nodes](/docs/tasks/administer-cluster/kubeadm/upgrading-windows-nodes/). </ins>  No newline at end of file

title: Upgrading Windows nodes min-kubernetes-server-version: 1.17 content_type: task <del> weight: 50 </del> <ins> weight: 110 </ins> --- <!-- overview -->

# replace <node-to-drain> with the name of your node kubectl uncordon <node-to-drain> ``` <ins> ## {{% heading "whatsnext" %}} * See how to [Upgrade Linux nodes](/docs/tasks/administer-cluster/kubeadm/upgrading-linux-nodes/). </ins>