Drain pods to other nodes before removal, and optionally release the underlying ECS instances.
Node removal applies only to cloud node pool nodes, not to worker nodes in self-managed on-premises Kubernetes clusters.
What happens when you remove a node
ACK performs the following steps automatically:
-
Drains the node by evicting all pods to other available nodes (if Drain Node is selected).
-
Removes the node from the cluster.
-
Releases the ECS instance and all attached data disks (if Release ECS Instance is selected).
If Expected Nodes is configured, the node pool scales to maintain the expected ECS instance count after removal.
After removal, you can re-add the node to the cluster.
Prerequisites
Ensure that you have:
-
An ACK One registered cluster with a connected external Kubernetes cluster.
-
A node pool with a custom script configured.
Usage notes
-
Remove nodes only from the ACK console. Do not use
kubectl delete node. -
Do not release or remove ECS instances from the ECS console, Auto Scaling console, or by using the API. If an ECS instance expires or is released outside ACK, the corresponding node stops and is removed from the ACK console.
-
Renew subscription ECS instances before they expire.
-
Back up node data before removal. Pod migration during removal may cause service interruptions.
-
Verify that other nodes have enough resources to host evicted pods before removal.
-
Verify that pods on the node can be rescheduled based on their affinity rules and scheduling policies.
Drain Node option
When Drain Node is selected, ACK evicts all pods to other available nodes before removal, preventing service interruptions.
Graceful shutdown timeout
The default graceful shutdown period (terminationGracePeriodSeconds) is 30 minutes, capping any pod's configured value. If a pod does not shut down within 30 minutes, draining fails and ACK does not proceed with removal. Retry the drain manually.
For pods with strict graceful shutdown requirements, drain the node manually before removing it:
-
Drain the node:
kubectl drain <your-region-name>.<node-id> --force --ignore-daemonsets --delete-local-dataExample:
kubectl drain cn-hangzhou.i-bp1asavedmte377c3****. For all flags, runkubectl drain --help. -
After all pods are evicted, remove the node in the ACK console with Drain Node cleared.
PodDisruptionBudget (PDB) behavior
ACK evicts pods according to their PodDisruptionBudget (PDB) configurations. Review and update PDB configurations before draining.
Release ECS Instance option
Selecting Release ECS Instance permanently terminates the ECS instance and all attached data disks. Back up all data before proceeding. This action cannot be undone.
| Option | Behavior |
|---|---|
| Selected | The ECS instance and all attached data disks are permanently released. |
| Cleared | The ECS instance persists after node removal and continues to accrue charges. |
Billing method constraints
-
Only pay-as-you-go ECS instances and their attached data disks can be released during node removal.
-
Subscription ECS instances cannot be released during node removal. They are automatically released after the subscription expires. To release a subscription ECS instance before expiration, request a refund or change the billing method from subscription to pay-as-you-go and then release it.
Procedure
-
Log on to the ACK console. In the left-side navigation pane, click Clusters.
-
On the Clusters page, click the name of the cluster you want to manage. In the left-side navigation pane, choose Nodes > Node Pools.
-
Click the name of the node pool. On the Nodes tab, select the nodes to remove and click Batch Remove.
-
Select or clear Drain Node and Release ECS Instance, review the usage notes, and complete the removal.
Next steps
-
Automatically or manually add nodes — re-add a node to the cluster after removal.