How to Perform Patch Level Upgrades on DOKS Clusters

You can use patch-level upgrades to upgrade DigitalOcean Kubernetes clusters to newer patch versions, like 1.13.1 to 1.13.2. There are two ways to upgrade:

  • On demand. When an upgrade becomes available for DigitalOcean Kubernetes, you can manually trigger the upgrade process.

  • Automatically. You can enable automatic upgrades for a cluster that happen within a maintenance window you specify. Automatic updates trigger on new patch versions of Kubernetes and new point releases of DigitalOcean Kubernetes subsystems, like the DigitalOcean Cloud Controller Manager or DigitalOcean Container Storage Interface.

You currently cannot upgrade to newer minor versions, such as from 1.12.1 to 1.13.1. If you would like to move between minor versions, you can create a new cluster and migrate your workloads.

The Upgrade Process

During an upgrade, the control plane (Kubernetes master) is replaced with a new master running the new patch version of Kubernetes. This process takes a few minutes, during which API access to the cluster is unavailable but workloads are not impacted.

Once the master has been replaced, the worker nodes are replaced in a rolling fashion, one worker pool at a time. Kubernetes reschedules each worker node’s workload, then replaces the node with a new node running the new patch version and reattaches any block storage volumes to the new nodes. The new worker nodes have new IP addresses.

Any data stored on the local disks of the worker nodes will be lost in the upgrade process. We recommend using persistent volumes for data storage, and not relying on local disk for anything other than temporary data.

During this process, workloads running on clusters with a single worker node will experience downtime because there is no additional capacity to host the node’s workload during the replacement.

In the event of security-related issues, it may be necessary for us to force cluster upgrades even on clusters with automatic upgrades disabled. When this is the case, we work to upgrade during specified maintenance windows with advance notiviation via email, control panel notifications, and via our status page.

Upgrading On Demand

To update a cluster manually, visit the Settings tab of the cluster. In the Version Upgrades section, click the Upgrade Now button.

This will begin the upgrade process immediately on that specific cluster.

Upgrading Automatically

To enable automatic upgrades for a cluster, visit the Settings tab of the cluster. In the Version Upgrades section, click Enable Auto Upgrades.

Automatic upgrades occur during a cluster’s 4-hour maintenance window. The default maintenance window is chosen by the DigitalOcean Kubernetes backend to guarantee an even workload across all maintenance windows for optimal processing.

You can specify a different maintenance window in the Settings tab of a cluster. In the Maintenance Window section, click Edit to specify a different start time. Maintenance windows are made up of two parts: a time of day and, optionally, a day of the week. For example, you can set your maintenance window to 5am any day of the week or to 8pm on Mondays.

Even if you have auto upgrades enabled you can still upgrade on-demand by clicking the Upgrade Now button.