Skip to main content

Create a Managed Kubernetes cluster on a cloud server

You can create no more than 10 high-availability clusters and 10 basic Managed Kubernetes clusters on cloud servers in one project and one pool.

  1. Configure the cluster.
  2. Configure the node group.
  3. Configure automation.

1. Configure the cluster

  1. In the Control panel, in the top menu, click Products and select Managed Kubernetes.

  2. In the Clusters section, click Create cluster.

  3. Enter the cluster name. The name will be displayed in the names of cluster objects: node groups, nodes, load balancers, networks, and disks. For example, if the cluster name is kelsie, the node group name will be kelsie-node-gdc8q, and the boot disk name will be kelsie-node-gdc8q-volume.

  4. Select the location where the master nodes will be located. After creating the cluster, the location cannot be changed.

  5. Select the Kubernetes version. After creating the cluster, you can upgrade the Kubernetes version.

  6. Optional: select a network plugin (CNI). By default, Calico is used in the cluster. You cannot change the CNI after the cluster is created.

    In the Cilium network plugin, by default:

    • the envoy daemonset setting is enabled — for more details on the setting, see the Envoy article in the Cilium documentation;
    • the hubble-relay setting is disabled — for more details on the setting, see the Hubble Relay subsection of the Hubble internals article in the Cilium documentation.

    If you want to change these settings, create a cluster using the Managed Kubernetes API. Note that to use the hubble-relay setting, a node must have at least 4 GB of RAM.

  7. Select the cluster type. After creating the cluster, the cluster type cannot be changed.

  8. Optional: to make the cluster accessible via a private network and inaccessible from the internet, select the Private kube API checkbox. By default, the cluster is created in a public network and is automatically assigned a public kube API IP address accessible from the internet. After creating the cluster, the kube API access type cannot be changed.

  9. Click Continue.

2. Configure a node group

  1. In the Server type field, select Cloud server.

  2. Select the location where all worker nodes in the group will be located. After creating the cluster, the location cannot be changed.

  3. Configure the worker node settings in the group:

    3.1. Select the worker node configuration in the group:

    • Standard — any resource ratio can be specified;
    • or GPU — pre-made node configurations with GPUs and a fixed resource ratio.

    If these configurations do not fit your needs, after creating the cluster, you can add a node group with a fixed cloud server configuration via the Managed Kubernetes API or Terraform.

    3.2. If you selected the Standard configuration, specify the number of vCPUs and RAM, and select a boot drive. Specify the disk size.

    3.3. If you selected the GPU configuration, select a GPU model and node configuration. To install GPU drivers manually, disable the GPU drivers toggle switch. By default, the GPU drivers toggle switch is enabled and the cluster uses pre-installed drivers. Select a boot drive and specify the disk size.

  4. Configure the number of worker nodes. For fault-tolerant operation of system components and the Cilium CNI plugin, we recommend having at least two worker nodes in the cluster; the nodes can be in different groups:

    4.1. To have a fixed number of nodes in the node group, open the Fixed tab and specify the number of nodes.

    4.2. To use autoscaling with Cluster Autoscaler in a node group, open the Autoscaling tab and specify the minimum and maximum number of nodes in the group — the number of nodes will change only within this range. Autoscaling is not available for GPU node groups without drivers.

  5. Optional: add node group labels:

    5.1. In the Labels field, click Add.

    5.2. Enter the label key.

    5.3. Enter the label value.

  6. Optional: add node group taints:

    6.1. In the Taints field, click Add.

    6.2. Enter the taint key.

    6.3. Enter the taint value.

    6.4. Select an effect:

    • NoSchedule — new pods will not be scheduled, and existing ones will continue running;
    • PreferNoSchedule — new pods will be scheduled if there are no other available spots in the cluster;
    • NoExecute — running pods without tolerations will be evicted.
  7. Optional: to make the node group preemptible, in the Additional settings field, select the Preemptible node group checkbox. Preemptible node groups are available in the regions of Saint Petersburg, Moscow, and Novosibirsk.

  8. Optional: add a script with custom parameters to configure the Managed Kubernetes cluster:

    8.1. In the User data field, click Add.

    8.2. Paste the script. The maximum size of a script with non-Base64 encoded data is 47 KB. You can find script examples and supported formats in the User data instructions.

  9. Optional: to add an additional worker node group to the cluster, click Add node group. You can create a cluster with worker node groups in different segments of the same pool. This will increase fault tolerance and help maintain application availability if a failure occurs in one of the segments.

  10. In the Cloud network block, configure a private subnet without internet access to combine all cluster nodes.

    10.1. To create a private subnet, in the Subnet for nodes field, select Create a new private subnet.

    A private network <cluster_name>-network, a private subnet, and a router <cluster_name>-router will be created automatically, where <cluster_name> is the cluster name. The CIDR is assigned automatically.

    The default security group will be assigned to node ports. Do not modify its rules or assign a different security group. This will prevent cluster malfunctions.

    10.2. If the private subnet is already created, in the Subnet for nodes field, select an existing subnet. The subnet must meet the following conditions:

    • belongs to the network of the project where you are creating the cluster. You can check which project the network belongs to in the Control panel: in the top menu, click Products → Managed Kubernetes → Network → the Private networks tab → network card. If the network belongs to another project, the network card will display the Cross-project tag and information about the ID of the project in which it was created;
    • connected to a cloud router;
    • does not overlap with the ranges 10.10.0.0/16, 10.96.0.0/12, 10.250.0.0/16, and 10.251.0.0/24. These ranges are used for internal Managed Kubernetes addressing;
    • DHCP is disabled;
    • only the default security group is assigned to ports. Do not modify its rules or assign a different security group. This will prevent cluster malfunctions. You can view security groups on ports.
  11. Click Continue.

3. Configure automation

  1. Optional: to enable node auto-recovery, select the Node auto-recovery checkbox. If the cluster has only one worker node, auto-recovery is not available.

  2. Optional: to enable automatic patch version upgrades, select the Automatic patch version upgrades checkbox. If the cluster has only one master node (basic cluster) or one worker node, automatic Kubernetes patch version upgrades are not available.

  3. Select the maintenance start time for the cluster — the time when automatic cluster maintenance activities will begin.

  4. Optional: to enable audit logs, select the Audit logs checkbox. After creating the cluster, configure integration with a log storage and analysis system.

  5. Check the price of the cluster on the cloud server.

  6. Click Create. Creating a cluster takes a few minutes, during which the cluster will be in the status CREATING. The cluster will be ready for use when it transitions to the ACTIVE status.