Skip to main content

Manage Node Pools

Delete and modify Node Pools using the API or Cloud Console

Node Pools can be modified after they have been created, either by editing them in the Cloud Console, or using Kubernetes by deploying an adjusted manifest.

To reboot Nodes in a Node Pool, see Reboot Nodes.

Modify a Node Pool using the Cloud Console

  1. To modify a Node Pool using the Cloud Console, navigate to Node Pools.

  2. All existing Node Pools are listed on the Node Pool dashboard, including the Node Pool containing Control Plane CPU Nodes:

  3. To modify a deployed Node Pool, click the vertical dot menu to the right of the Node Pool, then click Edit to open the manifest editor:

  4. Once the desired changes are made, click the Submit button.

Note

Changes may take a moment to display on the Cloud Console. To learn more about the current status of the Node Pool, hover over the status in the dashboard.

Update ncore image

To update your ncore images, complete the following steps:

  1. Check the ncore versions on your Nodes by using grep and ncore-image. Replace <NODE_ID> with your Node ID:

    Example
    $
    kubectl describe node <NODE_ID> | grep ncore-image

    This returns the ncore image tag and type, for example:

    Example
    node.coreweave.cloud/ncore-image-tag=2.24.1
    node.coreweave.cloud/ncore-image-type=ofed-5.8-3.0.7.0
  2. To see the ncore image for all Nodes in a given Node Pool, run the following command. Replace <NODE_POOL_NAME> with the name of your Node Pool.

    Example
    $
    kubectl get nodes -l compute.coreweave.com/node-pool=<NODE_POOL_NAME> \
    -o go-template='{{range .items}}{{.metadata.name}}{{"\t"}}{{"ncore-image-"}}{{index .metadata.labels "node.coreweave.cloud/ncore-image-tag"}}{{"-"}}{{index .metadata.labels "node.coreweave.cloud/ncore-image-type"}}{{"\n"}}{{end}}'
  3. After getting your ncore image versions, reach out to Support and notify them that you'd like to reboot your Nodes to upgrade your ncore images.

    Before contacting Support, have the specific ncore image you want to update to. This enables Support to monitor and confirm that nodes have upgraded successfully and answer any questions you have.

    See the following instructions for contacting support: Contact Support.

Delete a Node Pool using the Cloud Console

  1. To delete a Node Pool using the Cloud Console, navigate to Node Pools.

  2. Click the vertical dot menu beside the Node Pool to delete, then click Delete to open the confirmation modal.

Enter the name of the Node Pool to confirm deletion. The dashboard will update immediately, removing the deleted Node Pool from the list.

Modify a Node Pool using Kubernetes

To modify a Node Pool, first edit the Node Pool manifest, then apply the changed manifest using Kubectl.

For example, take a Node Pool deployed with this manifest:

example-nodepool.yaml
apiVersion: compute.coreweave.com/v1alpha1
kind: NodePool
metadata:
name: example-nodepool
spec:
computeClass: default
instanceType: gd-8xh100ib-i128
autoscaling: false
targetNodes: 10
minNodes: 0
maxNodes: 0

This manifest deploys a Node Pool with 10 Nodes. To change it to have only 5 Nodes, first adjust the manifest to change the targetNodes value to 5 as highlighted here:

example-nodepool.yaml
apiVersion: compute.coreweave.com/v1alpha1
kind: NodePool
metadata:
name: example-nodepool
spec:
computeClass: default
instanceType: gd-8xh100ib-i128
autoscaling: false
targetNodes: 5
minNodes: 0
maxNodes: 0

To apply the changes, apply the updated manifest using Kubectl:

Example command
$
kubectl apply -f example-nodepool.yaml

Once the manifest is applied, CKS will adjust the number of Nodes in the Node Pool accordingly.

Info
  • Removing Nodes from a Node Pool can take some time.
  • See Scaling strategies to learn how CKS responds when the value of targetNodes changes.

Using kubectl scale

Alternatively, as a shortcut, you can use kubectl to adjust targetNodes without editing the manifest directly.

For example, to set targetNodes for example-nodepool to 5 Nodes, run:

Example command
$
kubectl scale nodepool example-nodepool --replicas 5

Verify the updated Node Pool

To check the status of the modified Node Pool, target the Node Pool with kubectl get nodepool. For example:

Example command
$
kubectl get nodepool example-nodepool

This returns information about the current status of the targeted Node Pool, such as:

Example output
NAME INSTANCE TYPE TARGET INPROGRESS CURRENT VALIDATED CAPACITY QUOTA AGE
example-nodepool gd-1xgh200 1 1 Valid Sufficient Under 42h

Once the adjustment is complete, the value of CURRENT (the number of Nodes currently in the Node Pool) should match the value of TARGET (the number of Nodes desired in the Node Pool).

To see further details about the Node Pool in YAML format, target the Node Pool with kubectl get nodepool -o yaml.

Example command
$
kubectl get nodepool example-nodepool -o yaml

If you need to reboot a Node or Node Pool, see Reboot Nodes.

Delete a Node Pool using Kubernetes

To delete a Node Pool using Kubernetes, delete the Node Pool resource directly using Kubectl:

Example
$
kubectl delete nodepool example-nodepool

Deleting the nodepool resource first removes all Nodes associated with the Node Pool from the cluster, then deletes the Node Pool resource itself.

Warning

To avoid data loss when removing Node Pools, first ensure nothing is running in the Node Pool before deleting it. CKS does not wait for workloads to complete before removing Nodes.

Next steps