Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt

Use this file to discover all available pages before exploring further.

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

  1. In Cloud Console, navigate to Node Pools. If you do not 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 on the right-hand side, with a corresponding GUI on the left-hand side. The dashboard for creating and customizing Node Pools and its equivalent CR manifest.
  5. Configure the essential aspects of the Node Pool as desired:
    FieldTypeYAML FieldDescription
    NameStringmetadata.nameThe name of the Node Pool
    ClusterStringspec.clusterThe cluster to which the Node Pool will be added
    Compute ClassStringspec.computeClassThe compute class of the Node Pool.
    Target NodesIntegerspec.targetNodesThe quantity of desired Nodes in the Node Pool (minimum: 0)
    Instance TypeStringspec.instanceTypeThe desired instance type for the Node Pool

Node Pool quotas

Every time targetNodes is set, whether you are creating a new Node Pool or scaling an existing one, the organization’s quota is checked. 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. Error messages are displayed in the output of kubectl describe on the nodepool resource:
Type     Reason                         Age                  From              Message
----     ------                         ----                 ----              -------
Warning  CWOverQuota                    2m6s (x21 over 47m)  nodePoolOperator  TargetNodes pushes org over quota by <OVERAGE>. Quota limit is <QUOTA> for instance type <INSTANCE_TYPE> in zone <ZONE>
Warning  CWNodePoolQuotaCheckFailed     2m6s (x21 over 47m)  nodePoolOperator  Internal quota error
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 regarding your organization’s quota, please contact your CoreWeave representative.

Configure taints, labels, and annotations

At the bottom of the creation page, configure any desired 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. Once the Node Pool is ready to deploy, click the Submit button to deploy the Node Pool. If you need to make changes, click the Reset button to clear all fields and start over.
  2. Once you click the Submit button, you will be directed back to the Node Pools dashboard. The new Node Pool is listed in a Pending state until it has completed deployment, 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

First, configure a Node Pool manifest. Here’s an example of a default Node Pool:
example-nodepool.yaml
apiVersion: compute.coreweave.com/v1alpha1
kind: NodePool
metadata:
  name: example-nodepool
spec:
  computeClass: default
  autoscaling: false
  instanceType: gd-8xh100ib-i128
  maxNodes: 0
  minNodes: 0
  targetNodes: 2
  nodeLabels:
    my-label/node: "true"
  nodeAnnotations:
    my-annotation/node: "true"
  nodeTaints:
    - key: node-taint
      value: "true"
      effect: NoSchedule
The fields in this manifest map to the following values:
FieldTypeDescriptionDefault
computeClassStringThe compute class of the Node Pool.default
instanceTypeStringGPU Instance or CPU Instance typeN/A
autoscalingBooleanWhether a cluster has autoscaling enabledfalse
targetNodesIntegerThe quantity of desired Nodes in the Node Pool (minimum 0)N/A
minNodesIntegerThe minimum number of Nodes in the cluster (Optional if autoscaling: false)0
maxNodesIntegerThe maximum number of Nodes in the cluster (Optional if autoscaling: false)0
nodeLabelsMapLabels to apply to the Nodes in the Node Pool, to organize Nodes for specific purposes and Pod scheduling (Optional)N/A
nodeTaintsMapTaints to apply to the Nodes in the Node Pool, to schedule only Pods with matching tolerations (Optional)N/A
In the example above, the Node Pool manifest creates a Node Pool with the following characteristics:
KeyExample valueDescription
nameexample-nodepoolThe name of the Node Pool
computeClassdefaultThe compute class of the Node Pool, in this case a default Node Pool for Reserved and On-Demand instances
autoscalingfalseAutoscaling is not enabled
instanceTypegd-8xh100ib-i128The type of instances to include in the Node Pool, in this case 8 GPU-count H100s with InfiniBand (gd-8xh100ib-i128)
minNodes0The minimum number of Nodes that must be in the Node Pool - in this case, that number is not set (set to 0)
maxNodes0The maximum number of Nodes that must be in the Node Pool - in this case, that number is not set (set to 0)
targetNodes2The number of desired Nodes that should be in the Node Pool, in this case 2
nodeLabelsmy-label/node: "true"The label to place on all Nodes within the Node Pool
nodeTaints[{ key: "my-label/node", value: "true", effect: "NoSchedule" }]The taint to place on all Nodes in the Node Pool

Autoscaling

To enable autoscaling for a Node Pool, set autoscaling: true. The autoscaler will then adjust targetNodes based on workload demand, keeping it between minNodes and maxNodes. See Autoscale Node Pools for details.

Apply the manifest

Once you have configured the manifest, apply it with kubectl:
kubectl apply -f example-nodepool.yaml
When the manifest is applied, CKS provisions the cluster with a Node Pool comprised of Nodes that match the manifest’s specifications.

Verify the Node Pool

Verify that the Node Pool resource has been created properly by using kubectl get on the nodepool resource. For example:
Example command
kubectl get nodepool example-nodepool
The output displays details about the Node Pool name, including the type and number of instances it contains:
Example output
NAME                INSTANCE TYPE     TARGET   QUEUED   INPROGRESS   CURRENT   VALIDATED    CAPACITY    QUOTA    AGE
example-nodepool    gd-8xg100-i128    2        0        0            0         Valid        Sufficient   Under    24h

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
kubectl get nodepool
Example output
NAME                INSTANCE TYPE      TARGET   QUEUED   INPROGRESS   CURRENT   VALIDATED    CAPACITY                  QUOTA    AGE
example-nodepool    gd-8xg100-i128     2        0        0            0         Valid        Sufficient                 Under    24h
NodePool-2          cd-hp-a96-genoa    2        1        0            1         Valid        QueuedAwaitingCapacity    Under    2d22h
NodePool-3          gd-8xh100ib-i128   3        0        1            2         Valid        Sufficient                 Under    2d15h

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
kubectl describe nodepool example-nodepool
Example output
Name:         example-nodepool
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  compute.coreweave.com/v1alpha1
Kind:         NodePool
Metadata:
  Creation Timestamp:        2025-06-09T14:48:54Z
  Generation:                1
  Resource Version:          857370
  UID:                       9311678d-4064-45b8-8439-b943250e5852
Spec:
  Autoscaling:               false
  Instance Type:             gd-8xa100-i128
  Lifecycle:
    Disable Unhealthy Node Eviction:  true
    Scale Down Strategy:              IdleOnly
  Max Nodes:                 0
  Min Nodes:                 0
  Target Nodes:              1
Status:
  Conditions:
    Last Transition Time:    2025-05-30T17:36:00Z
    Message:                 NodePool configuration is valid.
    Reason:                  Valid
    Status:                  True
    Type:                    Validated
    Last Transition Time:    2025-05-30T17:36:00Z
    Message:                 Sufficient capacity available for the requested instance type.
    Reason:                  Sufficient
    Status:                  True
    Type:                    Capacity
    Last Transition Time:    2025-05-30T17:36:00Z
    Message:                 NodePool is within instance type quota.
    Reason:                  Under
    Status:                  True
    Type:                    Quota
    Last Transition Time:    2025-05-30T17:36:00Z
    Message:                 NodePool has reached its target node count.
    Reason:                  TargetMet
    Status:                  True
    Type:                    AtTarget
  Current Nodes:             1
  In Progress:               0
  Queued Nodes:              0
Events:                      <none>
For more information on Node Pool conditions, see Node Pool Reference: conditions.
Field nameDescription
INSTANCE TYPEThe instance type of all Nodes in the Node Pool.
TARGETThe number of Nodes in the Node Pool spec being requested.
QUEUEDThe count of queued Nodes waiting to be assigned.
INPROGRESSThe count of Nodes assigned and progressing into the Node Pool.
CURRENTThe count of Nodes in-cluster associated with the Node Pool.
VALIDATEDDisplays the result of Node Pool validation.
CAPACITYDisplays the last result for capacity checks for the instance type.
QUOTADisplays the last result for quota checks for the instance type.
AGEIndicates how long ago the Node Pool was created.
For more information on Node Pool creation, see the Node Pool reference page.
Last modified on April 20, 2026