Creating a node group
To create a node group, create a Kubernetes cluster first.
Create a node group
To create a node group:
-
In the management console
, select the folder to create your cluster in Kubernetes. -
In the list of services, select Managed Service for Kubernetes.
-
Select the Kubernetes cluster to create a node group for.
-
On the Kubernetes cluster page, go to Nodes manager.
-
Click Create node group.
-
Enter a name and description for the node group.
-
Specify the Container runtime environment: containerd.
-
Under Scaling, select a type:
-
Fixed: Number of nodes in group remains constant. Specify the number of nodes in the group.
This will make the Number of nodes setting available.
-
Automatic: To control the number of nodes in a group via cluster autoscaling.
As a result, the following settings become available:
- Minimum number of nodes.
- Maximum number of nodes.
- Initial number of nodes with which the group will be created.
Warning
You can't change the scaling type after you create a node group.
-
-
Under Computing resources:
-
Choose a platform.
-
If you selected a platform with GPUs, select the number of GPUs on a node.
-
Specify the number of vCPUs and the amount of RAM on a node.
-
(optional) Select a GPU cluster that the group's nodes will be added to. See VM configurations supported in GPU clusters.
-
(optional) Specify that the node must be preemptible.
-
-
Under Storage:
-
Specify the Disk type:
- Network SSD (
network-ssd
): Fast network drive, which is an SSD based network block storage. - Network HDD (
network-hdd
): Standard network drive, which is an HDD based network block storage. - Non-replicated SSD (
network-ssd-nonreplicated
): Network drive with enhanced performance without redundancy. - High-performance SSD (
network-ssd-io-m3
): Network drive with the same performance characteristics asnetwork-ssd-nonreplicated
, plus redundancy.
- Network SSD (
-
Specify the disk size.
-
-
Under Network settings:
-
In the Public IP field, choose a method for assigning an IP address:
- Auto: Assign a random IP address from the Nebius AI IP pool.
- No address: Don't assign a public IP address.
-
Select security groups.
-
-
Under Access, specify the information required to access the node:
- Enter the username in the Login field.
- In the SSH key field, paste the contents of the public key file.
-
Under Maintenance window settings:
- In the Maintenance frequency field, choose the maintenance window:
- Anytime: Maintenance is allowed at any time.
- Daily: Maintenance is performed during the interval specified in the Time (UTC) and duration field.
- On selected days: Maintenance is performed during the interval specified in the Schedule by day field.
- In the Maintenance frequency field, choose the maintenance window:
-
In the Advanced section:
- To be able to edit the unsafe kernel parameters on the group's nodes, click Add variable. To enter the name of each kernel parameter, create a separate field.
- To set up taint policies for nodes, use the Add policy button. Enter the key, value, and effect of each taint policy in a separate set of fields.
- To set up node labels for a node group, click Add label. Enter the key and value of each label in a separate set of fields.
-
Click Create node group.
Creating a group of nodes may take a few minutes depending on the number of nodes.
If you don't have the Nebius AI command line interface yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name
or --folder-id
parameter.
-
View a description of the CLI command to create a node group:
ncp managed-kubernetes node-group create --help
-
Specify node group parameters in the create command (the list of supported parameters in the example is not exhaustive):
ncp managed-kubernetes node-group create \ --allowed-unsafe-sysctls=<comma-separated list of unsafe kernel parameters> \ --cluster-name <cluster name> \ --cores <number of vCPUs> \ --core-fraction <guaranteed vCPU share> \ --daily-maintenance-window <maintenance window settings> \ --disk-size <storage size in GB> \ --disk-type <storage type> \ --fixed-size <fixed number of nodes in group> \ --gpus <number of GPUs> \ --gpu-cluster-id <GPU cluster ID> \ --location <cluster host location settings> \ --memory <GB of RAM> \ --name <node group name> \ --network-interface security-group-ids=[<security group IDs>],subnets=[<subnet names>],ipv4-address=<nat or auto> \ --platform-id <platform ID> \ --container-runtime <container runtime environment> \ --preemptible \ --public-ip \ --version <Kubernetes version on group nodes> \ --node-name <node name template> \ --node-taints <taint policy labels>
Where:
-
--allowed-unsafe-sysctls
: Permission for group nodes to use unsafe kernel parameters, comma-separated. -
--cluster-name
: Name of the Kubernetes cluster where the node group is created. -
--cores
: The number of vCPUs on a node. -
--core-fraction
: reserved vCPU fraction for nodes – should always be set to100
. -
--daily-maintenance-window
: Maintenance window settings. -
--disk-size
: Size of the disk on a node. -
--disk-type
: Type of the disk on a node. -
--fixed-size
: Number of nodes in the node group. -
--gpus
: Number of GPUs on a node. -
--gpu-cluster-id
: ID of a GPU cluster that the group's nodes will be added to. See VM configurations supported in GPU clusters. -
--location
: Availability zone, network, and subnet to host the nodes on. You can specify several options. -
--memory
: Amount of memory allocated for the nodes. -
--name
: Name of the node group. -
--network-interface
: Network settings:subnets
: Names of subnets that will host the nodes.ipv4-address
: Method of assigning an IPv4 address.ipv6-address
: Method of assigning an IPv6 address.
ipv4-address
andipv6-address
determine the method of assigning an IP address:auto
: Only the internal IP address is assigned to the node.nat
: Public and internal IP addresses are assigned to the node.
-
--platform-id
: Platform for nodes. -
--container-runtime
: Container runtime environment,containerd
. -
--preemptible
: Flag specified if the VM instances should be preemptible. -
--public-ip
: Flag specified if the node group needs a public IP address. -
--version
: Version Kubernetes on group nodes. -
--node-name
: Node name template. The name is unique if the template contains at least one of the variables:{instance_group.id}
: Node group internal ID.{instance.index}
: Unique instance number in the node group. Possible values: 1 to N, where N is the number of nodes in the group.{instance.index_in_zone}
: Instance number in a zone. It's unique for a specific node group within the zone.{instance.short_id}
: Instance ID that is unique within the group. Consists of four letters.{instance.zone_id}
: Zone ID.
For example,
prod-{instance.short_id}-{instance_group.id}
. If not specified, the default value is used:{instance_group.id}-{instance.short_id}
. -
--node-taints
: Kubernetes taint policy labels. You can specify multiple labels.
Warning
The
user-data
key is not supported for transmitting user data. Parameters for ssh connections must be specified in thessh-keys
key in the VM metadata.Result:
done (1m17s) id: catpl8c44kiibp20u4f3 cluster_id: catcsqidoos7tq0513us ... start_time: hours: 22 duration: 36000s
-
Alert
After you create a node group, Compute Cloud will display one or more VMs with autogenerated names. Do not update the names of the VMs that belong to a Managed Service for Kubernetes cluster. This will disrupt the operation of the node group and the entire cluster.