Upgrade an edge node

Updated at: 2025-04-10 09:57

To avoid potential security and stability risks from outdated cluster versions and to access the features in the latest releases, we recommend promptly upgrading your cluster following the version release schedule of the Container Service for Kubernetes (ACK) Edge cluster. Upgrading edge nodes is a crucial part of the cluster upgrade process and requires manual execution. This topic describes the steps to manually upgrade an edge node.

Prerequisites

The control plane of the cluster has been updated. For more information about how to update the cluster control plane, see Upgrade an ACK Edge cluster.

Limits

  • ACK Edge clusters support upgrades between versions 1.18 to 1.24. To upgrade from version 1.26 to 1.30, submit a ticket to contact the Container Service team. Upgrades to other versions are not supported.

  • When you upgrade an ACK Edge cluster, you can upgrade from the current Kubernetes version only to the subsequent version. For example, to upgrade the Kubernetes version of an ACK Edge cluster from 1.18 to 1.22, you must first upgrade to version 1.20, then to version 1.22.

  • During the upgrade of edge nodes, we recommend that you use a phased upgrade, limiting the process to no more than 20 nodes per batch.

  • In an ACK Edge cluster, edge nodes and the control plane can differ by at most two minor versions. For example, if the control plane runs Kubernetes version 1.22, the edge nodes must run at least Kubernetes version 1.20. We recommend that you maintain consistent versions between the control plane and edge nodes.

  • The following steps apply to the edge node upgrades. For information about how to upgrade cloud nodes, see Upgrade an on-cloud node pool.

Procedure

Update operations when the runtime is Docker
Update operations when the runtime is not Docker

To upgrade the Kubernetes version of an ACK Edge cluster to 1.24, you must change the container runtime from Docker to containerd if the cluster includes nodes that use the Docker runtime. Kubernetes 1.24 does not support the Docker runtime. You can complete the update by using the following methods.

  • (Recommended) Create a new node pool that uses the containerd runtime and perform rolling migration: Create a new node pool, set the runtime to containerd, and expand the number of nodes. Gradually migrate all applications to the new node pool by setting the old node pool to unschedulable or by changing the node pool scheduling method specified in the workloads (use labels), and then take the old node pool offline. For information about how to create a node pool, see Edge node pool management. For information about how to set a node to unschedulable, see Node draining and scheduling status.

  • In-place update: Change the runtime of the node from containerd to Docker. Drain the node before the update. All containers on the node will restart during the update.

    1. Drain the node.

    2. Run the following command on all nodes one at a time in the edge node pool:

       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}

      The following table describes the parameters.

      Parameter

      Description

      Example

      TARGET_CLUSTER_VERSION

      The new Kubernetes version.

      Note

      Set the value to the Kubernetes version of the updated control plane.

      1.24.6-aliyunedge.1

      For more information about the Kubernetes versions supported by ACK Edge clusters, see Release notes for supported Kubernetes versions.

      REGION

      The region ID of the cluster.

      cn-hangzhou

      For more information about the regions supported by ACK Edge clusters, see Supported regions.

      INTERCONNECT_MODE

      The network type of connections to the node.

      • basic: public network.

      • private: Express Connect circuits.

      basic

      The following output indicates that the node is updated.

      image

Run the following command on all nodes one at a time in the edge node pool:

 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}

The following table describes the parameters.

Parameter

Description

Example

TARGET_CLUSTER_VERSION

The new Kubernetes version.

Note

Set the value to the Kubernetes version of the updated control plane.

1.24.6-aliyunedge.1

For more information about the Kubernetes versions supported by ACK Edge clusters, see Release notes for supported Kubernetes versions.

REGION

The region ID of the cluster.

cn-hangzhou

For more information about the regions supported by ACK Edge clusters, see Supported regions.

INTERCONNECT_MODE

The network type of connections to the node.

  • basic: public network.

  • private: Express Connect circuits.

basic

The following output indicates that the node is updated.

image

FAQ

What do I do if edge node upgrades fail?

After you upgrade an edge node pool, if the message This node has been upgraded successfully is not returned, troubleshoot by referring to the solutions in What do I do if an edge node fails to be upgraded when I upgrade an ACK Edge cluster?

References

  • On this page (1)
  • Prerequisites
  • Limits
  • Procedure
  • FAQ
  • What do I do if edge node upgrades fail?
  • References
Feedback