The following sections describe how to update clusters.
The cluster update feature has different capabilities depending on the Pipeline edition you use:
- Open Source: with limited features, and only mandatory capabilities.
- Enterprise: with enhanced features, and complete update flow.
Note: In our online Banzai Cloud Pipeline Enterprise Preview environment you can use the Enterprise version of this feature.
Control Plane Kubernetes version upgrade 🔗︎
Pipeline supports upgrading Kubernetes Control Planes.
Limitations 🔗︎
The cluster version upgrade feature is currently supported only for EKS clusters.
Pipeline executes the update procedure described in the official EKS documentation.
- The open-source version of the EKS Control Plane upgrade does only step 1-3. from the official EKS update guide. It updates the Kubernetes version with the AWS EKS API, waits for the update to finish, and stores the new version in the database.
- The enterprise version of the EKS Control Plane upgrade completes all steps from the official EKS update guide.
Steps 🔗︎
To upgrade an EKS control plane, complete the following steps.
-
Update your Banzai CLI tool to the latest version.
-
Select the cluster to update:
The easiest way to execute subsequent kubectl and banzai commands on a Pipeline-managed cluster is to use the
banzai cluster shell
command. It will let you interactively select a cluster, and open a subshell with the proper Kubernetes context defined:banzai cluster shell
-
Compare the Kubernetes versions of your control plane and your node pools.
If your nodes are more than one Kubernetes minor version older than your control plane, then you must upgrade your nodes to a newer Kubernetes minor version before you update your cluster’s Kubernetes version, following the node pool update documentation.
banzai cluster get Id Name Distribution Location Version CreatorName CreatedAt Status StatusMessage 4181 update-test eks eu-west-1 1.15.10 bonifaido 2020-09-04T12:08:49Z RUNNING Cluster is running
kubectl get nodes NAME STATUS ROLES AGE VERSION master.example.com Ready master 1h v1.15.x+x.x.x.el7 worker1.example.com Ready <none> 1h v1.15.x+x.x.x.el7 worker2.example.com Ready <none> 1h v1.15.x+x.x.x.el7
-
Upgrade the control plane to a newer Kubernetes version.
Note: Only one minor version can be updated at a time, so if you are on
1.15
and you would like to update to1.17
you first have to update to1.16
and than to1.17
.-
If you run the command interactively, the CLI tries to find the right Kubernetes version to update to (
1.16
in this example):$ banzai cluster update Id Name Distribution Location Version CreatorName CreatedAt Status StatusMessage 4181 update-test eks eu-west-1 1.15.10 bonifaido 2020-09-04T12:08:49Z RUNNING Cluster is running ? Do you want to UPDATE the cluster? Yes ? Which version you wish to update to? 1.16 INFO[0016] cluster is being updated INFO[0016] you can check its status with the command `banzai cluster get "update-test"`
-
If you know the Kubernetes version to upgrade to, run the following command:
$ banzai cluster update <<EOF {"version":"1.16"} EOF INFO[0000] cluster is being updated INFO[0000] you can check its status with the command `banzai cluster get "update-test"`
-
-
Cluster updates are asynchronous, and take about the same time as starting a cluster. During an update, the cluster status is
UPDATING
(this status transition is eventually consistent). When the update is complete (either Failed or Successful), the cluster status becomesRUNNING
.
Node pool update 🔗︎
Once your Kubernetes control plane is updated, you can update the worker nodes as well. Follow the directions at Upgrading the node pools of a cluster.