Skip to main content
Managed Service for Kubernetes clusters manage and run containerized applications, providing automatic scaling, load balancing and streamlined deployment and management. In this guide, you will learn how to create, modify and delete clusters in Managed Service for Kubernetes. For more information on managing node groups and adding them to clusters, see Creating and modifying Managed Service for Kubernetes® node groups.

How to create clusters

  1. In the sidebar, go to https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/sidebar/compute.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=b91340217b08a1456d88ae0347f281d1 Compute → Kubernetes.
  2. Click the https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1 Create cluster button.
  3. On the page that opens, enter the cluster name.
  4. (Optionally) Enter labels in the key:value format.
  5. Review the Control plane section:
    • High availability is enabled by default. As a result, the cluster is created with three etcd stores instead of one. This makes the cluster more reliable; data stored in etcd is accessible even in case of failures. If you want to have only one etcd store, disable the high availability option. However, the enabled option does not affect the cost of the cluster.
    • The Kubernetes version is set by default. For supported versions, see Kubernetes® versions in Managed Service for Kubernetes.
    • A public endpoint is allocated by default. As a result, the cluster is available from the internet, you can connect to it from any machine. If you want to limit access to the cluster, disable the public endpoint option. Then, you can connect to the cluster only from a virtual machine located in the same subnet with the cluster.
  6. Review the Network section. The network and subnet are selected by default.
  7. Click Create cluster.

How to modify clusters

  1. Get the ID of the cluster via its name:
    export NB_K8S_CLUSTER_ID=$(nebius mk8s cluster get-by-name \
      --name <cluster_name> --format json | jq -r '.metadata.id')
    
    Alternatively, you can use the listing command: nebius mk8s cluster list.
  2. Update the cluster settings:
    nebius mk8s cluster update \
      --id $NB_K8S_CLUSTER_ID \
      --labels <key1=value1,key2=value2,...> \
      --control-plane-endpoints-public-endpoint=<true|false> \
      --control-plane-etcd-cluster-size <number_of_etcd_stores>
    
    The command contains the following parameters:
    • --labels: Labels in the key=value format.
    • --control-plane-endpoints-public-endpoint: Enables a public endpoint. As a result, the cluster is available from the internet, one can connect to it from any machine. If you want to limit access to the cluster, set the parameter to false. Then, one can connect to the cluster only from a virtual machine located in the same subnet with the cluster.
    • --control-plane-etcd-cluster-size: Number or etcd stores. Three of them ensure high availability of the cluster.
    Only the parameters from the command above can be changed. To perform a full cluster update, add --full to the command. This will update all parameters with the default values or the values specified in the --full command.

How to delete clusters

To delete a cluster, get its ID as shown in How to modify clusters and run the following command:
nebius mk8s cluster delete --id $NB_K8S_CLUSTER_ID

Examples

Creating a cluster with the Kubernetes version 1.32 and a public endpoint for the control plane:
nebius mk8s cluster create \
  --name cluster-example \
  --control-plane-version 1.33 \
  --control-plane-subnet-id \
    $(nebius vpc subnet list --format json \
    | jq -r '.items[0].metadata.id') \
  --control-plane-endpoints-public-endpoint=true