All Products
Search
Document Center

Container Service for Kubernetes:Remove nodes from a node pool

Last Updated:Jun 17, 2026

Drain pods to other nodes before removal, and optionally release the underlying ECS instances.

Note

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:

  1. Drains the node by evicting all pods to other available nodes (if Drain Node is selected).

  2. Removes the node from the cluster.

  3. 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:

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:

  1. Drain the node:

    kubectl drain <your-region-name>.<node-id> --force --ignore-daemonsets --delete-local-data

    Example: kubectl drain cn-hangzhou.i-bp1asavedmte377c3****. For all flags, run kubectl drain --help.

  2. 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

Important

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

  1. Log on to the ACK console. In the left-side navigation pane, click Clusters.

  2. On the Clusters page, click the name of the cluster you want to manage. In the left-side navigation pane, choose Nodes > Node Pools.

  3. Click the name of the node pool. On the Nodes tab, select the nodes to remove and click Batch Remove.

  4. Select or clear Drain Node and Release ECS Instance, review the usage notes, and complete the removal.

Next steps