Configure Rok Scheduler for your Kubernetes Version

This guide will walk you through configuring the Rok Scheduler after you have upgraded your control plane.

Note

This guide assumes that you have already deployed the Rok Scheduler on your cluster. If this does not hold, please proceed to the corresponding guide for deploying the Rok Scheduler on your cluster.

Check Your Environment

  1. Get the version of the Kubernetes control plane. Choose one of the following options, based on the upgrade you’ve made:

    root@rok-tools:~# kubectl version -ojson | jq -r '.serverVersion.gitVersion' v1.23.13-eks-fb459a0

    This guide presumes that you have upgraded your control plane to Kubernetes 1.23. The output of the above command must start with v1.23. If it does not, your control plane does not have the expected Kubernetes version. Please upgrade your control plane before proceeding.

    root@rok-tools:~# kubectl version -ojson | jq -r '.serverVersion.gitVersion' v1.22.15-eks-fb459a0

    This guide presumes that you have upgraded your control plane to Kubernetes 1.22. The output of the above command must start with v1.22. If it does not, your control plane does not have the expected Kubernetes version. Please upgrade your control plane before proceeding.

Procedure

  1. Go to your GitOps repository, inside your rok-tools management environment:

    root@rok-tools:~# cd ~/ops/deployments
  2. Edit the Rok Scheduler overlay that corresponds to your Kubernetes version. Choose one of the following options, based on the upgrade you’ve made:

    Edit rok/rok-scheduler/overlays/deploy/kustomization.yaml and use 1.23 instead of 1.22 as the base overlay:

    resources: #- ../../base ... #- ../k8s-1.22 - ../k8s-1.23

    Edit rok/rok-scheduler/overlays/deploy/kustomization.yaml and use 1.22 instead of 1.21 as the base overlay:

    resources: #- ../../base ... #- ../k8s-1.21 - ../k8s-1.22 #- ../k8s-1.23
  3. Commit your changes. Choose one of the following options, based on the upgrade you’ve made:

    root@rok-tools:~/ops/deployments# git commit -am "Configure Rok Scheduler for Kubernetes 1.23"
    root@rok-tools:~/ops/deployments# git commit -am "Configure Rok Scheduler for Kubernetes 1.22"
  4. Mark your progress:

    root@rok-tools:~/ops/deployments# export DATE=$(date -u "+%Y-%m-%dT%H.%M.%SZ")
    root@rok-tools:~/ops/deployments# git tag \ > -a deploy/${DATE?}/release-2.0/ops-eks-upgrade-scheduler \ > -m "Configure Rok Scheduler for your Kubernetes Version"
  5. Apply the kustomization:

    root@rok-tools:~/ops/deployments# rok-deploy --apply rok/rok-scheduler/overlays/deploy

Verify

  1. Verify that the Rok Scheduler is up and running. Verify that field READY is 1/1:

    root@rok-tools:~# kubectl get deploy -n rok-system rok-scheduler NAME READY AGE rok-scheduler 1/1 1m
  2. Get the image of the Rok Scheduler. Choose one of the following options, based on the upgrade you’ve made:

    Ensure that the image tag matches the Kubernetes version 1.23, that is, it starts with 1.23:

    root@rok-tools:~# kubectl -n rok-system get deploy rok-scheduler \ > -o jsonpath='{.spec.template.spec.containers[].image}{"\n"}' gcr.io/arrikto/kube-scheduler-amd64:v1.23.16-rc.0-2-g3f076d890

    Ensure that the image tag matches the Kubernetes version 1.22, that is, it starts with 1.22:

    root@rok-tools:~# kubectl -n rok-system get deploy rok-scheduler \ > -o jsonpath='{.spec.template.spec.containers[].image}{"\n"}' gcr.io/arrikto/kube-scheduler-amd64:v1.22.15-rc.0-2-g5efc53238

Summary

You have successfully configured Rok Scheduler for your updated Kubernetes version.

What’s Next

The next step is to configure the Cluster Autoscaler for the Kubernetes version of your EKS cluster.