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
-
To modify a Node Pool using the Cloud Console, navigate to Node Pools.
-
All existing Node Pools are listed on the Node Pool dashboard, including the Node Pool containing Control Plane CPU Nodes:
-
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:
-
Once the desired changes are made, click the Submit button.
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:
-
Check the
ncoreversions on your Nodes by usinggrepandncore-image. Replace<NODE_ID>with your Node ID:Example$kubectl describe node <NODE_ID> | grep ncore-imageThis returns the
ncoreimage tag and type, for example:Examplenode.coreweave.cloud/ncore-image-tag=2.24.1node.coreweave.cloud/ncore-image-type=ofed-5.8-3.0.7.0 -
To see the
ncoreimage 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}}' -
After getting your
ncoreimage versions, reach out to Support and notify them that you'd like to reboot your Nodes to upgrade yourncoreimages.Before contacting Support, have the specific
ncoreimage 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
-
To delete a Node Pool using the Cloud Console, navigate to Node Pools.
-
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:
apiVersion: compute.coreweave.com/v1alpha1kind: NodePoolmetadata:name: example-nodepoolspec:computeClass: defaultinstanceType: gd-8xh100ib-i128autoscaling: falsetargetNodes: 10minNodes: 0maxNodes: 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:
apiVersion: compute.coreweave.com/v1alpha1kind: NodePoolmetadata:name: example-nodepoolspec:computeClass: defaultinstanceType: gd-8xh100ib-i128autoscaling: falsetargetNodes: 5minNodes: 0maxNodes: 0
To apply the changes, apply the updated manifest using Kubectl:
$kubectl apply -f example-nodepool.yaml
Once the manifest is applied, CKS will adjust the number of Nodes in the Node Pool accordingly.
- Removing Nodes from a Node Pool can take some time.
- See Scaling strategies to learn how CKS responds when the value of
targetNodeschanges.
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:
$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:
$kubectl get nodepool example-nodepool
This returns information about the current status of the targeted Node Pool, such as:
NAME INSTANCE TYPE TARGET INPROGRESS CURRENT VALIDATED CAPACITY QUOTA AGEexample-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.
$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:
$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.
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
- Reboot Nodes to reboot Nodes manually
- Apply Node Pool updates to apply Node Pool updates by queuing a reconfigure reboot
- Connect to a Node to troubleshoot issues with a Node