Upgrade an edge node

Updated at:
Copy as MD

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) or private (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

  1. Create a containerd node pool. See Edge node pool management.

  2. Migrate workloads to the new node pool:

  3. Take the old node pool offline once all workloads are migrated.

Option 2: In-place update

Restarts all containers on the node.

  1. Change the container runtime from Docker to containerd.

  2. Drain the node before upgrading. See Node draining and scheduling status.

  3. Upgrade each node one at a time:

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

  4. Verify that the upgrade succeeded. The output shows:

    This node has been upgraded successfully

    Upgrade success output

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
Upgrade success output

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