Skip to content

Part 4: Upgrade

What Will You Do

In part 4, you will:

  • Perform an "in-place upgrade" of the EKS control plane and worker nodes to a more recent kubernetes version

Watch a video of this exercise.

Assumptions

This part assumes that you have completed Part 1 of this series and have a successfully provisioned and healthy EKS cluster.


In-Place Upgrade

Select a method to provision and manage your EKS cluster from the tabs below.

Step 1: Upgrade Control Plane and Node Pools

In this step, you will upgrade the kubernetes version for the control plane and the node pools.

Confirm the current control plane version of the cluster

  • Navigate to the previously created project in your Org
  • Go to Infrastructure -> Clusters and view the current version of the control plane

Verify Control Plane Version

Confirm the current node pool version of the cluster

  • Select Infrastructure -> Clusters
  • Click on the cluster name on the cluster card
  • Click the "Nodes" tab
  • Expand the node card to see the version

Verify Node Pool Version

  • Select Infrastructure -> Clusters
  • Click on "Upgrade Available" on the cluster card
  • Select the version to upgrade to
  • Select "Control Plane + Node Pools" for the EKS Version Upgrade Type
  • Select the node pools to be upgraded
  • Click "Upgrade"

Web Upgrade

The upgrade process will begin upgrading the control plane

Web Upgrade

The upgrade process will then move to upgrading the node pools

Web Upgrade

The completed upgrade will look like the below:

Web Upgrade


  • Go to Infrastructure -> Clusters
  • Click on the settings icon of the cluster and select "Download Cluster Config"
  • Update the downloaded specification file with the new Kubernetes version

The updated YAML file will look like this:

kind: Cluster
metadata:
  name: demo-eks-testing
  project: defaultproject
spec:
  blueprint: minimal
  cloudprovider: demo
  cniprovider: aws-cni
  proxyconfig: {}
  type: eks
---
apiVersion: rafay.io/v1alpha5
kind: ClusterConfig
managedNodeGroups:
- amiFamily: AmazonLinux2
  desiredCapacity: 2
  iam:
    withAddonPolicies:
    autoScaler: true
  instanceType: t3.large
  maxSize: 2
  minSize: 1
  name: ng-1
  version: "1.23"
  volumeSize: 80
  volumeType: gp3
metadata:
  name: demo-eks-testing
  region: us-west-2
  version: "1.23"
vpc:
  cidr: 192.168.0.0/16
  clusterEndpoints:
    privateAccess: true
    publicAccess: false
  nat:
    gateway: Single
  • Execute the following command to begin the upgrade of the control plane version

./rctl apply -f eks-cluster-testing.yaml
Expected output (with a task id):

Cluster: demo-eks-testing
{
  "taskset_id": "3mxdjkr",
  "operations": [
    {
      "operation": "ClusterUpgrade",
      "resource_name": "demo-eks-testing",
      "status": "PROVISION_TASK_STATUS_PENDING"
    }
  ],
  "comments": "The status of the operations can be fetched using taskset_id",
  "status": "PROVISION_TASKSET_STATUS_PENDING"
}

Step 1: Upgrade Control Plane and Node Pools

In this step, you will upgrade the kubernetes version for the control plane and the node pools.

Confirm the current control plane version of the cluster.

  • Navigate to the previously created project in your Org
  • Go to Infrastructure -> Clusters and view the current version of the control plane
  • Click Upgrade Available next to the cluster name. A list of Kubernetes versions to upgrade to displays.

Confirm the current node pool version of the cluster

  • Select Infrastructure -> Clusters
  • Click on the cluster name on the cluster card
  • Click the "Nodes" tab
  • Expand the node card to see the version

Update the cluster version.

  • Edit the terraform.tfvars file.
  • Change the k8s_version to a newer version. Do this for the Cluster specific variables and the pool1 variables.
  • Save the file
  • Apply the change using the following command

    terraform apply
    
  • Enter yes when prompted.

Note that the upgrade can take up to 15 minutes to complete.

Once the upgrade is complete, you can see that the kubernetes version of the cluster control plane has been upgraded.

Verify Cluster Version

You can see that the kubernetes version of the node pool has been upgraded as well.

Verify Cluster Version



Monitor Upgrade

From the web console, we can see that the upgrade is in progress. Note that the upgrade can take up to 40 minutes to complete.

Once the upgrade is complete, we can see that the kubernetes version of "both" the cluster control plane and the worker nodes have been upgraded.


Recap

Congratulations! You have successfully performed an "in-place upgrade" of both the control plane and the worker nodes to a new version of Kubernetes.