Kubernetes Add-on / Upgrade Guidance (kURL installer)

Got a great question over the weekend - reproduced below


We’re looking for a little Kubernetes / add-on upgrade guidance…

Our deployments are all embedded cluster installs using kURL with the following config:

apiVersion: kurl.sh/v1beta1
kind: Installer
metadata:
  name: 'Lightup in a box'
spec:
  kubernetes:
    version: "1.20.7"
  weave:
    version: "2.6.7"
  contour:
    version: "1.13.1"
  docker:
    version: "20.10.5"
  registry:
    version: "2.7.1"
  longhorn:
    version: "1.1.2"
  minio:
    version: "2020-01-25T02-50-51Z"
  ekco:
    version: "latest"
    enableInternalLoadBalancer: true
    nodeUnreachableToleration: "1m"
  kotsadm:
    version: "latest"
  prometheus:
    version: latest

The Kubernetes version is old so we’d like to bump this up probably to 1.24.4 and we’d like to bump up the version of the add-ons to updated versions as well. Questions…

Q1. Is there a way to perform these upgrades through the KOTS admin console? If not is the following the proper way to upgrade: https://kurl.sh/docs/install-with-kurl/upgrading ?

Q2. If the answer to Q1 is to use the kURL installer script to upgrade then the documentation says:

run it on any primary in the cluster.

Does this mean that the other nodes in the cluster will be upgraded as well and nothing needs to be run on them?

Q3. For the add-ons is there any guidance on what versions to use? E.g. any versions that are only compatible with specific Kubernetes versions? Or any versions that need to be used to work properly with other add-ons?

If there is any documentation that I missed for any of these questions then please point me in the right direction.

Thanks for the help.

For starters, I’ll just open with a little disclaimer: please, please, for the sake of your team and your support team, please test this upgrade in an internal environment that closely matches the end customer environment. Our team would be happy to coach you through doing that, including guidance on documentation and deterministically installing specific versions of the application/cluster to match the customer env.

Now, on to the questions:

Q1. Is there a way to perform these upgrades through the KOTS admin console? If not is the following the proper way to upgrade: https://kurl.sh/docs/install-with-kurl/upgrading ?

  1. No, you’ll follow the steps you linked to run the script on the host

Q2. If the answer to Q1 is to use the kURL installer script to upgrade then the documentation says:
run it on any primary in the cluster.
Does this mean that the other nodes in the cluster will be upgraded as well and nothing needs to be run on them?

  1. When running the script on a primary, the script will pause at certain points and instruct you to run commands on other nodes

Q3. For the add-ons is there any guidance on what versions to use? E.g. any versions that are only compatible with specific Kubernetes versions? Or any versions that need to be used to work properly with other add-ons?

  1. We don’t have a full compatibility matrix, but you can explore https://testgrid.kurl.sh to review vetted, tested specs

1 Like