-
Notifications
You must be signed in to change notification settings - Fork 288
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add user facing doc for management-components upgrade (#7703)
Co-authored-by: Xu Deng <[email protected]>
- Loading branch information
1 parent
a221810
commit 28de746
Showing
1 changed file
with
74 additions
and
0 deletions.
There are no files selected for viewing
74 changes: 74 additions & 0 deletions
74
docs/content/en/docs/clustermgmt/cluster-upgrades/management-components-upgrade.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
--- | ||
title: "Upgrade management components" | ||
linkTitle: "Upgrade management components" | ||
weight: 21 | ||
aliases: | ||
/docs/tasks/cluster/cluster-upgrades/management-components-upgrade/ | ||
date: 2024-02-21 | ||
description: > | ||
How to upgrade EKS Anywhere management components | ||
--- | ||
|
||
>**_NOTE:_** The `eksctl anywhere upgrade management-components` subcommand was added in EKS Anywhere version v0.19.0 for all providers. Management component upgrades can only be done through the eksctl CLI, not through the Kubernetes API. | ||
### What are “management components”? | ||
|
||
Management components run on management or standalone clusters and are responsible for managing the lifecycle of workload clusters. Management components include but are not limited to: | ||
|
||
* Cluster API controller | ||
* EKS Anywhere cluster lifecycle controller | ||
* Curated Packages controller | ||
* Provider-specific controllers (vSphere, Tinkerbell etc.) | ||
* Tinkerbell services (Boots, Hegel, Rufio, etc.) | ||
* Custom Resource Definitions (CRDs) (clusters, eksareleases, etc.) | ||
|
||
### Why upgrade management components separately? | ||
|
||
The existing `eksctl anywhere upgrade cluster` command, when run against management or standalone clusters, upgrades both the management and cluster components. When upgrading versions, this upgrade process performs a rolling replacement of nodes in the cluster, which brings operational complexity, and should be carefully planned and executed. | ||
|
||
With the new `eksctl anywhere upgrade management-components` command, you can upgrade management components separately from cluster components. This enables you to get the latest updates to the management components such as Cluster API controller, EKS Anywhere controller, and provider-specific controllers without a rolling replacement of nodes in the cluster, which reduces the operational complexity of the operation. | ||
|
||
### Check management components versions | ||
|
||
You can check the current and new versions of management components with the `eksctl anywhere upgrade plan management-components` command: | ||
|
||
``` | ||
eksctl anywhere upgrade plan management-components -f management-cluster.yaml | ||
``` | ||
|
||
The output should appear similar to the following: | ||
|
||
``` | ||
NAME CURRENT VERSION NEXT VERSION | ||
EKS-A Management v0.18.3+cc70180 v0.19.0+a672f31 | ||
cert-manager v1.13.0+68bec33 v1.13.2+a34c207 | ||
cluster-api v1.5.2+b14378d v1.6.0+04c07bc | ||
kubeadm v1.5.2+5762149 v1.6.0+5bf0931 | ||
vsphere v1.7.4+6ecf386 v1.8.5+650acfa | ||
etcdadm-bootstrap v1.0.10+c9a5a8a v1.0.10+1ceb898 | ||
etcdadm-controller v1.0.16+0ed68e6 v1.0.17+5e33062 | ||
``` | ||
|
||
Alternatively, you can run the `eksctl anywhere upgrade plan cluster` command against your management cluster, which shows the version differences for both management and cluster components. | ||
|
||
### Upgrade management components | ||
|
||
To perform the management components upgrade, run the following command: | ||
|
||
``` | ||
eksctl anywhere upgrade management-components -f management-cluster.yaml | ||
``` | ||
|
||
The output should appear similar to the following: | ||
|
||
``` | ||
Performing setup and validations | ||
✅ Docker provider validation | ||
✅ Control plane ready | ||
✅ Cluster CRDs ready | ||
Upgrading core components | ||
Installing new eksa components | ||
🎉 Management components upgraded! | ||
``` | ||
|
||
At this point, a new `eksaVersion` custom resource will be available in your management cluster, which means new cluster components that correspond to the `eksaVersion` are available for cluster upgrades. You can subsequently run a workload cluster upgrade with the `eksctl anywhere upgrade cluster command`, or by updating `eksaVersion` field in your workload cluster's spec and applying it to your management cluster with Kubernetes API-compatible tooling such as kubectl, GitOps, or Terraform. |