How to Enable High Availability for Vultr Kubernetes Engine Cluster

Updated on December 9, 2024

High availability is a key feature of Vultr Kubernetes Engine (VKE) cluster that ensures your VKE cluster remain resilient and operational, even in the face of unexpected failures. By enabling high availability, your VKE cluster is distributed across multiple nodes and regions, reducing the risk of downtime and ensuring continuous availability of your applications. This feature integrates seamlessly with Vultr’s global cloud infrastructure, providing reliable performance and redundancy.

Follow this guide to enable and configure High Availability for your VKE clusters using the Vultr Customer Portal, API, or CLI.

  • Vultr Customer Portal
  • Vultr API
  • Vultr CLI
  1. Navigate to Products and click Kubernetes.

  2. Click Add Cluster.

  3. Provide a Cluster Name.

  4. Click on Enable High Availability.

    Button to enable high availability for the Kubernetes cluster

  5. Choose a Server Location.

  6. Provide a Label, and select Number of Nodes.

    Field to provide a cluster label and select number of nodes

  7. Select a Node Pool Type and a Plan.

    Button to choose a node pool type for the cluster

  8. Click Deploy Now.

  1. Send a POST request to the Create Kubernetes Clusters endpoint to create a VKE cluster with high availability, note the created cluster's ID.

    console
    $ curl -X POST "https://api.vultr.com/v2/kubernetes/clusters" \
        -H "Authorization: Bearer ${VULTR_API_KEY}" \
        -H "Content-Type: application/json" \
        -d '{
            "label": "vke",
            "region": "lax",
            "version": "v1.30.0+1",
            "ha_controlplanes": true,
            "node_pools": [
                {
                "node_quantity": 2,
                "min_nodes": 2,
                "max_nodes": 5,
                "auto_scaler": true,
                "label": "my-label",
                "plan": "vc2-1c-2gb",
                "tag": "my-tag"
                }
            ]
            }'
    
  2. Send a GET request to the Kubernetes Cluster endpoint to get the cluster info of the target VKE cluster.

    console
    $ curl -X GET "https://api.vultr.com/v2/kubernetes/clusters/<cluster-id>" \
        -H "Authorization: Bearer ${VULTR_API_KEY}" \
        -H "Content-Type: application/json"
    
  1. Create a VKE cluster with --high-avail flag, note the created cluster's ID.

    console
    $ vultr-cli kubernetes create --high-avail --label "my-cluster" --region="ewr" --version="v1.30.0+1" --node-pools="quantity:3,plan:vc2-1c-2gb,label:my-nodepool,tag:my-tag"
    
  2. Get the VKE cluster.

    console
    $ vultr-cli kubernetes get <cluster-id>