---
title: Provisioning
url: https://docs.vultr.com/products/compute/kubernetes/provisioning
description: A guide explaining how to set up and deploy a new Kubernetes cluster using Vultr Kubernetes Engine (VKE)
publish_date: 2024-09-23T20:20:40.524763Z
last_updated: 2026-05-26T18:59:55.078032Z
---

# How to Provision a Vultr Kubernetes Engine Cluster

Vultr Kubernetes Engine (VKE) is a fully-managed service that lets you deploy Kubernetes clusters with predictable pricing. Vultr manages the control plane and worker nodes while providing integration with other managed services such as Load Balancers, Block Storage, and DNS. VKE clusters simplify orchestration, allowing you to focus on scaling and building applications with minimal overhead. Vultr Kubernetes Engine (VKE) is ideal for automating CI/CD pipelines, managing microservices, or deploying AI-driven applications with global reach and reliability.

Follow this guide to provision a Vultr Kubernetes Engine cluster on your Vultr Account using the Vultr Console, API, CLI, or Terraform.

=== "Vultr Console"

    1. Navigate to **Products** and click **Kubernetes**.
    1. Click **Add Cluster**.
    1. Enter your desired VKE cluster name in the **Cluster Name** field.
    1. Click the **Kubernetes Version** drop-down and select your target version.
    1. Optional: **Enable High Availability** for multiple nodes and **Vultr Firewall** to filter network traffic.
    1. Under Cluster Configuration, click the **Node Pool Type** drop-down and select the node instance type.
    1. Click the **Node Pool Plan** drop-down and select the target node plan.
    1. Enter a **Label** for your node and select the **Number of Nodes** to attach to the cluster.
    1. Choose a **Vultr Location** for your cluster.
    1. Optional: Choose an existing VPC network from **VPC Network** dropdown to create a new Vultr Kubernetes Engine (VKE) cluster with an existing VPC.
        > [!NOTE]
        > An existing VPC can only be attached to a new VKE cluster if both are in the same region. If no existing VPC is selected, the VKE cluster will automatically provision a new VPC in the same region by default.
    1. Click **Deploy Now** to provision the Vultr Kubernetes Engine (VKE) cluster.

=== "Vultr API"

    1. Send a `GET` request to the [**List Regions** endpoint](https://www.vultr.com/api/#tag/region/operation/list-regions) and note your target Vultr region ID.

        ```console
        $ curl "https://api.vultr.com/v2/regions" \
            -X GET \
            -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

    1. Send a `GET` request to the [**List available plans in region** endpoint](https://www.vultr.com/api/#tag/region/operation/list-available-plans-region) to view all available instance plans in your chosen region and note the target node pool plan.

        ```console
        $ curl "https://api.vultr.com/v2/regions/{region-id}/availability" \
            -X GET \
            -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

    1. Send a `GET` request to the [**Get Kubernetes Versions** endpoint](https://www.vultr.com/api/#tag/kubernetes/operation/get-kubernetes-versions) and note your target Kubernetes version to use.

        ```console
        $ curl "https://api.vultr.com/v2/kubernetes/versions" \
            -X GET \
            -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

    1. Send a `POST` request to the [**Create Kubernetes Cluster** endpoint](https://www.vultr.com/api/#tag/kubernetes/operation/create-kubernetes-cluster) to provision a VKE cluster with your target region, plan, and Kubernetes version.

        ```console
        $ curl "https://api.vultr.com/v2/kubernetes/clusters" \
            -X POST \
            -H "Authorization: Bearer ${VULTR_API_KEY}" \
            -H "Content-Type: application/json" \
            --data '{
                "label": "{cluster-name}",
                "region": "{region-id}",
                "version": "{kubernetes-version}",
                "node_pools": [
                    {
                        "node_quantity": {number-of-nodes},
                        "label": "{node-label}",
                        "plan": "{node-plan}"
                    }
                ]
            }'
        ```

        Visit the [**Create Kubernetes Cluster** page](https://www.vultr.com/api/#tag/kubernetes/operation/create-kubernetes-cluster) to view additional attributes you can apply to your VKE cluster provisioning request.

    1. Send a `GET` request to the [**List all Kubernetes Clusters** endpoint](https://www.vultr.com/api/#tag/kubernetes/operation/list-kubernetes-clusters) to list all VKE clusters in your Vultr account.

        ```console
        $ curl "https://api.vultr.com/v2/kubernetes/clusters" \
            -X GET \
            -H "Authorization: Bearer ${VULTR_API_KEY}"
        ```

=== "Vultr CLI"

    1. List all Vultr regions and note your target region ID.
     
        ```console
        $ vultr-cli regions list
        ```

    1. List all available instance plans in your target region and note the target node pool plan.

        ```console
        $ vultr-cli regions availability <region-id>
        ```

    1. List all available Kubernetes versions and note your target version to use.

        ```console
        $ vultr-cli kubernetes versions
        ```

    1. Provision a VKE cluster with your target node plan, region ID, Kubernetes version and region.

        ```console
        $ vultr-cli kubernetes create --label "<cluster-name>" --region "<region-id>" --version "<kubernetes-version>" --node-pools "quantity:<number-of-nodes>,plan:<node-plan>,label:<node-label>"
        ```

        Run `vultr-cli kubernetes create --help` to view additional options you can apply to your VKE cluster provisioning request.

    1. List all VKE clusters in your Vultr account.

        ```console
        $ vultr-cli kubernetes list --summarize
        ```

=== "Terraform"

    1. Ensure the [Vultr Terraform provider](https://registry.terraform.io/providers/vultr/vultr/latest/docs) is configured in your Terraform project.

    1. Define a VKE cluster with one node pool and apply.

        ```terraform
        resource "vultr_kubernetes" "vke" {
            label   = "vke-cluster-1"
            region  = "ewr"
            version = "1.29.3+1"   # example version

            node_pools {
                node_quantity = 3
                label         = "pool-a"
                plan          = "vc2-2c-4gb"
            }
        }
        ```

    1. Apply the configuration and observe the following output:

        ```
        Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
        ```
