Skip to main content
To add Nodes to clusters, you must first create and deploy a Node Pool to associate with a given cluster. Node Pools are deployed as Kubernetes , which allocate the number, type, and regional placement of Nodes for use by a specified CKS cluster. Node Pools can be deployed either directly using Kubernetes, or on the Cloud Console using the Node Pools dashboard.

Prerequisites

Create a Node Pool using the Cloud Console

To create a Node Pool from the Cloud Console, complete the following steps:
  1. In Cloud Console, navigate to the Node Pools page (https://console.coreweave.com/zones/[ZONE-NAME]/clusters/[CLUSTER-NAME]/node-pools). If you don’t yet have any CKS clusters, you need to create a cluster first.
  2. Select the CKS cluster to which the Node Pool should be added from the drop-down menu at the top of the page. A closeup of the cluster selection dropdown on the dashboard for creating and customizing Node Pools.
  3. Click the Create Node Pool button at the top right corner of the dashboard. The homepage of a user Cloud Console account with the Node Pools tab highlighted.
  4. The creation page features a YAML editor alongside a corresponding GUI. The dashboard for creating and customizing Node Pools and its equivalent CR manifest.
  5. Configure the Node Pool:

Node Pool quotas

Every time targetNodes is set, whether you’re creating a new Node Pool or scaling an existing one, CKS checks the organization’s quota. If the total request exceeds the organization’s quota for that instance type and zone, the Node Pool is filled up to the allowed quota. The output of kubectl describe on the nodepool resource displays error messages:
Quota enforcement applies to both new and existing Node Pools. If targetNodes exceeds the organization’s quota, the Node Pool is filled only up to the allowed quota. For example, if the quota maximum is 10 and targetNodes is set to 15, the Node Pool requests only 10 nodes.To check the current quota status for a Node Pool, run kubectl get nodepool and look at the QUOTA column. An Over status means the Node Pool’s targetNodes exceeds the organization’s quota.
For more information, see the Node Pool reference page. For more details about your organization’s quota, contact your CoreWeave representative.

Configure taints, labels, and annotations

At the bottom of the creation page, configure any taints, annotations, or labels for the Node Pool. The dashboard for creating and customizing Node Pools and its equivalent CR manifest.
For more information about Node taint scheduling, see Taints and Tolerations in the official Kubernetes documentation. For information about the valid syntax for labels and annotations in CKS and vanilla Kubernetes, see Labels and Selectors in the official Kubernetes documentation.

Deploy the Node Pool

  1. When the Node Pool is ready, click the Submit button to deploy it. If you need to make changes, click the Reset button to clear all fields and start over.
  2. After you click the Submit button, Cloud Console directs you back to the Node Pools dashboard. The new Node Pool is listed in a Pending state until deployment completes, when its status changes to Healthy. Screenshot of Node Pool statuses on the Cloud Console
To learn more about other Node Pool conditions, see the Node Pool reference on conditions.

Create a Node Pool using Kubernetes

The following sections describe how to define a Node Pool manifest, apply it to your cluster, and verify the result. First, configure a Node Pool manifest. Here’s an example of a default Node Pool:
example-nodepool.yaml
The fields in this manifest map to the following values: In this example, the Node Pool manifest creates a Node Pool with the following characteristics:

Autoscaling

To enable autoscaling for a Node Pool, set autoscaling: true. The autoscaler then adjusts targetNodes based on workload demand, keeping it between minNodes and maxNodes.
Autoscaling is not supported for rack-based instance types such as GB200 and GB300. See Autoscale Node Pools for details.

Rack-based Node Pools

For rack-based instance types, such as GB200 and GB300, targetRacks can be used instead of targetNodes. Each rack contains 18 Nodes, so setting targetRacks requests Nodes in multiples of 18 without having to calculate the Node count yourself. For example, targetRacks: 5 requests 5 racks, or 90 Nodes. targetRacks and targetNodes are mutually exclusive: a Node Pool spec must set exactly one of the two.
example-rack-nodepool.yaml
For full deployment guidance for rack-based instances, including Pod affinity and NVLink domain placement, see NVL72-powered instances.

Apply the manifest

After you configure the manifest, apply it with kubectl:
When you apply the manifest, CKS provisions the cluster with a Node Pool composed of Nodes that match the manifest’s specifications.

Verify the Node Pool

Verify that CKS created the Node Pool resource by using kubectl get on the nodepool resource. For example:
Example command
The output displays details about the Node Pool name, including the type and number of instances it contains:
Example output

List all available Node Pools

To view all available Node Pools in a cluster, use kubectl get nodepool. This returns a list of all current Node Pools in the cluster, as well as their current condition. For example:
Example command
Example output

View the Node Pool

To see additional details on any Node Pool, target the Node Pool with kubectl describe. For example, where the Node Pool’s metadata.name is example-nodepool:
Example command
Example output
For more information about Node Pool conditions, see Node Pool reference: conditions.
For more information about Node Pool creation, see the Node Pool reference page.
Last modified on July 10, 2026