How to Enable High Availability

Validated on 21 May 2026 • Last edited on 21 May 2026

DigitalOcean Kubernetes (DOKS) is a Kubernetes service with a fully managed control plane, high availability, and autoscaling. DOKS integrates with standard Kubernetes toolchains and DigitalOcean’s load balancers, volumes, CPU and GPU Droplets, API, and CLI.

DigitalOcean Kubernetes provides a high availability (HA) option that increases the reliability of the control plane by creating multiple replicas of each control plane component.

For clusters created on DOKS version 1.36.0 and later, HA is enabled by default when ha flag is omitted in API request. For clusters created on earlier versions without HA, you can enable it on existing clusters. This guide describes how to enable HA in the control panel; however, you can also do so through the command line by using doctl v1.87.0 or later.

Enable High Availability Using Automation

You can enable high availability using the DigitalOcean Kubernetes doctl update command or API endpoint by setting the ha value to true.

How to Update a Kubernetes Cluster Using the DigitalOcean CLI
  1. Install doctl, the official DigitalOcean CLI.
  2. Create a personal access token and save it for use with doctl.
  3. Use the token to grant doctl access to your DigitalOcean account.
    doctl auth init
  4. Finally, run doctl kubernetes cluster update. Basic usage looks like this, but you can read the usage docs for more details:
    doctl kubernetes cluster update <id|name> [flags]
    The following example updates a cluster named example-cluster to enable automatic upgrades and sets the maintenance window to saturday=02:00:
    doctl kubernetes cluster update example-cluster --auto-upgrade --maintenance-window saturday=02:00
How to Update a Kubernetes Cluster Using the DigitalOcean API

Create a personal access token and save it for use with the API.

cURL

Send a PUT request to https://api.digitalocean.com/v2/kubernetes/clusters/{cluster_id}.

Using cURL:

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{"name": "stage-cluster-01", "tags":["staging", "web-team"]}' \
  "https://api.digitalocean.com/v2/kubernetes/clusters/bd5f5959-5e1e-4205-a714-a914373942af"

Go

Using Godo, the official DigitalOcean API client for Go:

import (
    "context"
    "os"

    "github.com/digitalocean/godo"
)

func main() {
    token := os.Getenv("DIGITALOCEAN_TOKEN")

    client := godo.NewFromToken(token)
    ctx := context.TODO()

    updateRequest := &godo.KubernetesClusterUpdateRequest{
        Name: "stage-cluster-01",
        Tags: []string{"staging", "web-team"},
    }

    cluster, _, err := client.Kubernetes.Update(ctx, "bd5f5959-5e1e-4205-a714-a914373942af", updateRequest)
}

Ruby

Using DropletKit, the official DigitalOcean API client for Ruby:

require 'droplet_kit'
token = ENV['DIGITALOCEAN_TOKEN']
client = DropletKit::Client.new(access_token: token)

cluster = DropletKit::KubernetesCluster.new(
  name: 'foo',
  tags: ['staging', 'web-team']
)

client.kubernetes_clusters.update(cluster, id: 'bd5f5959-5e1e-4205-a714-a914373942af')

Python

Using PyDo, the official DigitalOcean API client for Python:

import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

req = {
  "name": "prod-cluster-01",
  "tags": [
    "k8s",
    "k8s:bd5f5959-5e1e-4205-a714-a914373942af",
    "production",
    "web-team"
  ],
  "maintenance_policy": {
    "start_time": "12:00",
    "day": "any"
  },
  "auto_upgrade": True,
  "surge_upgrade": True,
  "ha": True
}

resp = client.kubernetes.update_cluster(cluster_id="1fd32a", body=req)

Enable High Availability Using the Control Panel

To enable high availability on an existing cluster, go to the control panel and click the cluster you want to enable high availability on. Then, in the Overview tab, scroll down to the Add high availability card.

I can’t find this card.

DigitalOcean Kubernetes clusters originally created with version 1.20 or older have a version of the control plane which does not allow you to enable high availability. If you cannot find this card, upgrade your control plane.

To check whether you can upgrade your cluster to the new control plane, see Upgrading to New Control Plane.

In the card, click Add high availability. This opens a pop-up window where you can confirm your change. Once enabled, you cannot disable high availability in the future.

We can't find any results for your search.

Try using different keywords or simplifying your search terms.