Home Explore Blog CI



kubernetes

1st chunk of `content/en/docs/tasks/administer-cluster/cluster-upgrade.md`
e8ea27d39dc6912a8dfae6956bc595a2afff3ec5696507240000000100000880
---
title: Upgrade A Cluster
content_type: task
weight: 350
---

<!-- overview -->
This page provides an overview of the steps you should follow to upgrade a
Kubernetes cluster.

The Kubernetes project recommends upgrading to the latest patch releases promptly, and
to ensure that you are running a supported minor release of Kubernetes.
Following this recommendation helps you to to stay secure.

The way that you upgrade a cluster depends on how you initially deployed it
and on any subsequent changes.

At a high level, the steps you perform are:

- Upgrade the {{< glossary_tooltip text="control plane" term_id="control-plane" >}}
- Upgrade the nodes in your cluster
- Upgrade clients such as {{< glossary_tooltip text="kubectl" term_id="kubectl" >}}
- Adjust manifests and other resources based on the API changes that accompany the
  new Kubernetes version

## {{% heading "prerequisites" %}}

You must have an existing cluster. This page is about upgrading from Kubernetes
{{< skew currentVersionAddMinor -1 >}} to Kubernetes {{< skew currentVersion >}}. If your cluster
is not currently running Kubernetes {{< skew currentVersionAddMinor -1 >}} then please check
the documentation for the version of Kubernetes that you plan to upgrade to.

## Upgrade approaches

### kubeadm {#upgrade-kubeadm}

If your cluster was deployed using the `kubeadm` tool, refer to 
[Upgrading kubeadm clusters](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/)
for detailed information on how to upgrade the cluster.

Once you have upgraded the cluster, remember to
[install the latest version of `kubectl`](/docs/tasks/tools/).

### Manual deployments

{{< caution >}}
These steps do not account for third-party extensions such as network and storage
plugins.
{{< /caution >}}

You should manually update the control plane following this sequence:

- etcd (all instances)
- kube-apiserver (all control plane hosts)
- kube-controller-manager
- kube-scheduler
- cloud controller manager, if you use one

At this point you should
[install the latest version of `kubectl`](/docs/tasks/tools/).

For each node in your cluster, [drain](/docs/tasks/administer-cluster/safely-drain-node/)

Title: Upgrading a Kubernetes Cluster: An Overview
Summary
This document outlines the general steps for upgrading a Kubernetes cluster, emphasizing the importance of staying up-to-date with patch releases and supported minor versions for security. The upgrade process varies based on the initial deployment method. It covers upgrading the control plane, nodes, and clients like kubectl, as well as adjusting manifests for API changes. Specific instructions are provided for clusters deployed with kubeadm, while manual deployments require updating control plane components in a specific order before upgrading nodes.