How to enable InfiniBand for a node group
- Web console
- CLI
- Go SDK
- Python SDK
- JavaScript SDK
-
In the sidebar, go to
Compute → Kubernetes.
- Open the page of the cluster where you want to create a node group.
-
Click
Create node group.
-
Under Computing resources:
- Select With GPU.
-
Select a platform and a preset compatible with GPU clusters. The compatible platforms and presets:
Platform Presets Regions NVIDIA® B300 NVLink with Intel Granite Rapids
(gpu-b300-sxm)8gpu-192vcpu-2768gbuk-south1,eu-west2,us-north1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm)8gpu-160vcpu-1792gbus-central1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm-a)8gpu-160vcpu-1792gbme-west1NVIDIA® H200 NVLink with Intel Sapphire Rapids
(gpu-h200-sxm)8gpu-128vcpu-1600gbeu-north1,eu-north2,eu-west1,us-central1NVIDIA® H100 NVLink with Intel Sapphire Rapids
(gpu-h100-sxm)8gpu-128vcpu-1600gbeu-north1 -
Select a GPU cluster or create one. If the field is inactive, make sure you have selected a compatible platform and preset.
All virtual machines added to a GPU cluster must be in the same project as the GPU cluster.
- Under GPU settings, keep the Install NVIDIA GPU drivers and other components option enabled. If you want to install the drivers manually, disable this option.
-
Depending on your project’s region, select an InfiniBand fabric and save it to an environment variable:
export INFINIBAND_FABRIC=<fabric> -
Create a GPU cluster and save its ID:
export GPU_CLUSTER_ID=$(nebius compute gpu-cluster create \ --name gpu-cluster-name \ --infiniband-fabric $INFINIBAND_FABRIC \ --format jsonpath='{.metadata.id}') -
Create a node group with GPUs and specify the GPU cluster ID in its parameters by using the nebius mk8s node-group create command:
nebius mk8s node-group create \ --template-resources-platform gpu-h100-sxm \ --template-resources-preset 8gpu-128vcpu-1600gb \ --template-gpu-cluster-id $GPU_CLUSTER_ID \ --template-gpu-settings-drivers-preset cuda13.0 \ ...If a node group uses a GPU cluster, the GPU cluster must be located in the same project as the node group’s parent cluster.-
In
--template.gpu-cluster-id, specify the GPU cluster ID. -
In
--template-resources-platform, specify a platform with GPUs. In--template-resources-preset, specify a compatible preset (number of GPUs and vCPUs, RAM size). The compatible platforms and presets are:Platform Presets Regions NVIDIA® B300 NVLink with Intel Granite Rapids
(gpu-b300-sxm)8gpu-192vcpu-2768gbuk-south1,eu-west2,us-north1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm)8gpu-160vcpu-1792gbus-central1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm-a)8gpu-160vcpu-1792gbme-west1NVIDIA® H200 NVLink with Intel Sapphire Rapids
(gpu-h200-sxm)8gpu-128vcpu-1600gbeu-north1,eu-north2,eu-west1,us-central1NVIDIA® H100 NVLink with Intel Sapphire Rapids
(gpu-h100-sxm)8gpu-128vcpu-1600gbeu-north1 -
In
--template-gpu-settings-drivers-preset, specify a supported preset to use a boot disk image that contains drivers and other components for GPUs. For more details, see GPU drivers and other components. If you want to install the drivers manually, omit the--template-gpu-settings-drivers-presetparameter.
-
In
-
Depending on your project’s region, select an InfiniBand fabric:
infinibandFabric := "<fabric>" -
Create a GPU cluster and save its ID:
gpuClusterOperation, err := sdk.Services().Compute().V1(). GpuCluster().Create( ctx, &compute.CreateGpuClusterRequest{ Metadata: &common.ResourceMetadata{ Name: "gpu-cluster-name", }, Spec: &compute.GpuClusterSpec{ InfinibandFabric: infinibandFabric, }, }, ) if err != nil { return err } if _, err = gpuClusterOperation.Wait(ctx); err != nil { return err } gpuClusterID := gpuClusterOperation.ResourceID() if gpuClusterID == "" { return fmt.Errorf("GPU cluster ID is missing") } -
Create a node group with GPUs and specify the GPU cluster ID in its parameters:
nodeGroupOperation, err := sdk.Services().MK8S().V1(). NodeGroup().Create( ctx, &mk8s.CreateNodeGroupRequest{ Metadata: &common.ResourceMetadata{ ParentId: mk8sClusterID, Name: "node-group-example", }, Spec: &mk8s.NodeGroupSpec{ Version: "1.36", Size: &mk8s.NodeGroupSpec_FixedNodeCount{ FixedNodeCount: 1, }, Template: &mk8s.NodeTemplate{ Resources: &mk8s.ResourcesSpec{ Platform: "gpu-h100-sxm", Size: &mk8s.ResourcesSpec_Preset{ Preset: "8gpu-128vcpu-1600gb", }, }, BootDisk: &mk8s.DiskSpec{ Size: &mk8s.DiskSpec_SizeGibibytes{ SizeGibibytes: 100, }, Type: mk8s.DiskSpec_NETWORK_SSD, }, GpuCluster: &mk8s.GpuClusterSpec{ Id: gpuClusterID, }, GpuSettings: &mk8s.GpuSettings{ DriversPreset: "cuda13.0", }, }, }, }, ) if err != nil { return err } if _, err = nodeGroupOperation.Wait(ctx); err != nil { return err }-
In
Template.GpuCluster.Id, specify the GPU cluster ID. -
In
Template.Resources.Platform, specify a platform with GPUs. InTemplate.Resources.Size.Preset, specify a compatible preset (number of GPUs and vCPUs, RAM size). The compatible platforms and presets are:Platform Presets Regions NVIDIA® B300 NVLink with Intel Granite Rapids
(gpu-b300-sxm)8gpu-192vcpu-2768gbuk-south1,eu-west2,us-north1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm)8gpu-160vcpu-1792gbus-central1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm-a)8gpu-160vcpu-1792gbme-west1NVIDIA® H200 NVLink with Intel Sapphire Rapids
(gpu-h200-sxm)8gpu-128vcpu-1600gbeu-north1,eu-north2,eu-west1,us-central1NVIDIA® H100 NVLink with Intel Sapphire Rapids
(gpu-h100-sxm)8gpu-128vcpu-1600gbeu-north1 -
In
Template.GpuSettings.DriversPreset, specify a supported preset to use a boot disk image that contains drivers and other components for GPUs. For more details, see GPU drivers and other components. If you want to install the drivers manually, omitTemplate.GpuSettings.
-
In
-
Depending on your project’s region, select an InfiniBand fabric:
infiniband_fabric = "<fabric>" -
Create a GPU cluster and save its ID:
gpu_cluster_service = GpuClusterServiceClient(sdk) gpu_cluster_operation = await gpu_cluster_service.create( CreateGpuClusterRequest( metadata=ResourceMetadata(name="gpu-cluster-name"), spec=GpuClusterSpec( infiniband_fabric=infiniband_fabric, ), ), ) await gpu_cluster_operation.wait() gpu_cluster_id = gpu_cluster_operation.resource_id if not gpu_cluster_id: raise ValueError("GPU cluster ID is missing") -
Create a node group with GPUs and specify the GPU cluster ID in its parameters:
node_group_service = NodeGroupServiceClient(sdk) node_group_operation = await node_group_service.create( CreateNodeGroupRequest( metadata=ResourceMetadata( parent_id=mk8s_cluster_id, name="node-group-example", ), spec=NodeGroupSpec( version="1.36", fixed_node_count=1, template=NodeTemplate( resources=ResourcesSpec( platform="gpu-h100-sxm", preset="8gpu-128vcpu-1600gb", ), boot_disk=DiskSpec( size_gibibytes=100, type=DiskSpec__DiskType.NETWORK_SSD, ), gpu_cluster=GpuClusterSpec(id=gpu_cluster_id), gpu_settings=GpuSettings(drivers_preset="cuda13.0"), ), ), ), ) await node_group_operation.wait()-
In
template.gpu_cluster.id, specify the GPU cluster ID. -
In
template.resources.platform, specify a platform with GPUs. Intemplate.resources.preset, specify a compatible preset (number of GPUs and vCPUs, RAM size). The compatible platforms and presets are:Platform Presets Regions NVIDIA® B300 NVLink with Intel Granite Rapids
(gpu-b300-sxm)8gpu-192vcpu-2768gbuk-south1,eu-west2,us-north1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm)8gpu-160vcpu-1792gbus-central1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm-a)8gpu-160vcpu-1792gbme-west1NVIDIA® H200 NVLink with Intel Sapphire Rapids
(gpu-h200-sxm)8gpu-128vcpu-1600gbeu-north1,eu-north2,eu-west1,us-central1NVIDIA® H100 NVLink with Intel Sapphire Rapids
(gpu-h100-sxm)8gpu-128vcpu-1600gbeu-north1 -
In
template.gpu_settings.drivers_preset, specify a supported preset to use a boot disk image that contains drivers and other components for GPUs. For more details, see GPU drivers and other components. If you want to install the drivers manually, omittemplate.gpu_settings.
-
In
-
Depending on your project’s region, select an InfiniBand fabric:
const infinibandFabric = "<fabric>"; -
Create a GPU cluster and save its ID:
const gpuClusterService = new GpuClusterService(sdk); const gpuClusterOperation = await gpuClusterService.create( CreateGpuClusterRequest.create({ metadata: ResourceMetadata.create({ name: "gpu-cluster-name", }), spec: GpuClusterSpec.create({ infinibandFabric, }), }), ).result; await gpuClusterOperation.wait(); const gpuClusterId = gpuClusterOperation.resourceId(); if (!gpuClusterId) { throw new Error("GPU cluster ID is missing"); } -
Create a node group with GPUs and specify the GPU cluster ID in its parameters:
const nodeGroupService = new NodeGroupService(sdk); const nodeGroupOperation = await nodeGroupService.create( CreateNodeGroupRequest.create({ metadata: ResourceMetadata.create({ parentId: mk8sClusterId, name: "node-group-example", }), spec: NodeGroupSpec.create({ version: "1.36", size: { $case: "fixedNodeCount", fixedNodeCount: 1, }, template: NodeTemplate.create({ resources: ResourcesSpec.create({ platform: "gpu-h100-sxm", size: { $case: "preset", preset: "8gpu-128vcpu-1600gb", }, }), bootDisk: DiskSpec.create({ size: { $case: "sizeGibibytes", sizeGibibytes: 100, }, type: DiskSpec_DiskType.NETWORK_SSD, }), gpuCluster: GpuClusterSpec.create({ id: gpuClusterId, }), gpuSettings: GpuSettings.create({ driversPreset: "cuda13.0", }), }), }), }), ).result; await nodeGroupOperation.wait();-
In
template.gpuCluster.id, specify the GPU cluster ID. -
In
template.resources.platform, specify a platform with GPUs. Intemplate.resources.size.preset, specify a compatible preset (number of GPUs and vCPUs, RAM size). The compatible platforms and presets are:Platform Presets Regions NVIDIA® B300 NVLink with Intel Granite Rapids
(gpu-b300-sxm)8gpu-192vcpu-2768gbuk-south1,eu-west2,us-north1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm)8gpu-160vcpu-1792gbus-central1NVIDIA® B200 NVLink with Intel Emerald Rapids
(gpu-b200-sxm-a)8gpu-160vcpu-1792gbme-west1NVIDIA® H200 NVLink with Intel Sapphire Rapids
(gpu-h200-sxm)8gpu-128vcpu-1600gbeu-north1,eu-north2,eu-west1,us-central1NVIDIA® H100 NVLink with Intel Sapphire Rapids
(gpu-h100-sxm)8gpu-128vcpu-1600gbeu-north1 -
In
template.gpuSettings.driversPreset, specify a supported preset to use a boot disk image that contains drivers and other components for GPUs. For more details, see GPU drivers and other components. If you want to install the drivers manually, omittemplate.gpuSettings.
-
In
Example: NCCL tests
To test InfiniBand performance in a Managed Service for Kubernetes cluster, you can run the NVIDIA NCCL test in it. For instructions, see our tutorial.See also
InfiniBand and InfiniBand Trade Association are registered trademarks of the InfiniBand Trade Association.