Kubernetes

This documentation describes how to perform the version upgrade operation of a TraefikEE cluster in Kubernetes.

Do not attempt upgrading using kubectl or helm

Do not try to upgrade your TraefikEE cluster manually by using kubectl apply or helm upgrade and changing the version of TraefikEE in the deployed files. Using the method described in this documentation instead will allow you to smoothly upgrade your cluster.

Backing Up the Outdated Cluster

First, follow the documentation on backing up a cluster to generate a backup archive, which will be used to configure a new cluster.

Upgrading teectl

The teectl tool must be upgraded before starting the cluster version upgrade: follow the installing teectl guide to install the latest version of the binary.

Run teectl version to ensure the correct version is installed.

Replacing the Outdated Cluster

To upgrade a cluster, install a new one running in parallel with the outdated cluster. Once the new cluster is reachable, the outdated cluster can be uninstalled.

In order to install a second cluster without conflicting with the existing one, it has to be installed under a different cluster name. This means all teectl commands must specify the --cluster option with the new cluster name.

Version upgrade from v1 to v2

To update a v1 cluster to v2, first make sure that the existing cluster is running at least version v1.3. Back it up and then use the cluster migration tool to transform the v1 backup into a v2 backup that can be used in the upgrade procedure.

  1. Run the teectl setup and teectl setup gen commands but with a different cluster name and apply the generated manifest file(s).
  2. Run teectl restore --backup=path/to/your/backup.tar to restore your cluster configuration in the new cluster.
  3. Wait for the new cluster to have an external IP attributed to its internal load balancer service and make sure that the new cluster is fully operational.
  4. Redirect the traffic to the new cluster's external IP. This could be done by updating the external DNS entry to point to the new load balancer service's IP, or by editing your L4 load balancer's configuration, for example.
  5. Ensure that your applications are reachable through the new cluster.

The new cluster should now be operating properly and the upgrade process should not have dropped any application traffic. The outdated cluster can safely be removed.