Upgrade an edge node
After upgrading the control plane, manually run the upgrade command on each edge node.
Prerequisites
Before you begin:
-
ACK edge cluster control plane is upgraded. See Upgrade an ACK Edge cluster.
-
Edge node interconnect mode is identified:
basic(public network) orprivate(Express Connect circuits).
Limitations
| Constraint | Details |
|---|---|
| Supported version ranges | Versions 1.18 to 1.24: use these steps. Versions 1.26 to 1.30: submit a ticket to contact the Container Service team. Other versions: not supported. |
| Sequential minor-version upgrades | Each upgrade advances by only one minor version. To go from 1.18 to 1.22, upgrade in two steps: 1.18 → 1.20, then 1.20 → 1.22. |
| Version skew between control plane and edge nodes | The control plane and edge nodes can differ by at most two minor versions. For example, if the control plane runs 1.22, edge nodes must run at least 1.20. Keep versions in sync where possible. |
| Batch size | Upgrade at most 20 nodes per batch to limit impact. |
| Cloud nodes | See Upgrade an on-cloud node pool. |
Upgrade edge nodes
Follow the steps for your container runtime.
If the runtime is Docker (upgrading to 1.24)
Kubernetes 1.24 dropped Docker runtime support. Migrate from Docker to containerd before upgrading to 1.24.
Option 1 (recommended): Rolling migration to a new node pool
-
Create a containerd node pool. See Edge node pool management.
-
Migrate workloads to the new node pool:
-
Set the old node pool to unschedulable. See Node draining and scheduling status.
-
Update workload node selectors to use the new node pool's labels.
-
-
Take the old node pool offline once all workloads are migrated.
Option 2: In-place update
Restarts all containers on the node.
-
Change the container runtime from Docker to containerd.
-
Drain the node before upgrading. See Node draining and scheduling status.
-
Upgrade each node one at a time:
Parameter Description Example TARGET_CLUSTER_VERSIONThe Kubernetes version of the updated control plane 1.24.6-aliyunedge.1— see Release notes for supported Kubernetes versionsREGIONThe region ID of the cluster cn-hangzhou— see Supported regionsINTERCONNECT_MODEThe network type: basicfor public network,privatefor Express Connect circuitsbasicexport REGION="" INTERCONNECT_MODE="" TARGET_CLUSTER_VERSION=""; export ARCH=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : (($1 == "aarch64") ? "arm64" : "amd64")}') INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" ); wget http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com/public/pkg/run/attach/${TARGET_CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;./edgeadm upgrade --interconnect-mode=${INTERCONNECT_MODE} --region=${REGION}Set these parameters before running the command:
-
Verify that the upgrade succeeded. The output shows:
This node has been upgraded successfully
If the runtime is not Docker
Upgrade each node one at a time:
export REGION="" INTERCONNECT_MODE="" TARGET_CLUSTER_VERSION=""; export ARCH=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : (($1 == "aarch64") ? "arm64" : "amd64")}') INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" ); wget http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com/public/pkg/run/attach/${TARGET_CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;./edgeadm upgrade --interconnect-mode=${INTERCONNECT_MODE} --region=${REGION}
Set these parameters before running the command:
| Parameter | Description | Example |
|---|---|---|
TARGET_CLUSTER_VERSION |
The Kubernetes version of the updated control plane | 1.24.6-aliyunedge.1 — see Release notes for supported Kubernetes versions |
REGION |
The region ID of the cluster | cn-hangzhou — see Supported regions |
INTERCONNECT_MODE |
The network type: basic for public network, private for Express Connect circuits |
basic |
Verify that the upgrade succeeded. The output shows:
This node has been upgraded successfully
FAQ
What do I do if an edge node upgrade fails?
If the output does not include This node has been upgraded successfully, see What do I do if an edge node fails to be upgraded when I upgrade an ACK Edge cluster?.
Next steps
-
Remove edge nodes if they are no longer needed.
-
Configure edge node autonomy to maintain service continuity during cloud-edge disconnections.