All Products
Search
Document Center

Container Service for Kubernetes:Add an edge node

Last Updated:Mar 25, 2026

ACK Edge clusters support adding physical and virtual machines from different environments as edge nodes — including Elastic Compute Service (ECS) instances from other regions, on-premises IDC servers, nodes from other cloud providers, and servers deployed in factories, retail outlets, vehicles, and ships.

This topic describes how to add an existing node to an edge node pool in an ACK Edge cluster.

Prerequisites

Before you begin, make sure that:

Supported operating systems

System architectureOS versionKernel versionACK Edge cluster version
AMD64/x86_64Anolis7.9, Anolis8.64.19.X≥ 1.16.9-aliyunedge.1
AMD64/x86_64Alibaba Cloud Linux 2.19034.19.X≥ 1.20.11-aliyunedge.1
AMD64/x86_64Alibaba Cloud Linux 35.10.X≥ 1.20.11-aliyunedge.1
AMD64/x86_64CentOS 7.4, 7.5, 7.6, 7.7, 7.8, and 7.93.10.X1.12.6-aliyunedge.1 ≤ version ≤ 1.30.7-aliyun.1
AMD64/x86_64CentOS 8.0, CentOS 8.24.18.X1.18.8-aliyunedge.1 ≤ version ≤ 1.30.7-aliyun.1
AMD64/x86_64Ubuntu 16.044.4.X1.18.8-aliyunedge.1 ≤ version ≤ 1.30.7-aliyun.1
AMD64/x86_64Ubuntu 18.044.15.X1.12.6-aliyunedge.1 ≤ version ≤ 1.30.7-aliyun.1
AMD64/x86_64Ubuntu 18.045.4.X≥ 1.16.9-aliyunedge.1
AMD64/x86_64Ubuntu 18.045.11.X≥ 1.18.8-aliyunedge.1
AMD64/x86_64Ubuntu 20.045.4.X≥ 1.18.8-aliyunedge.1
AMD64/x86_64Ubuntu 20.04 and Ubuntu 22.045.15.X≥ 1.26.3-aliyun.1
AMD64/x86_64Ubuntu 24.046.8.X≥ 1.30.7-aliyun.1
AMD64/x86_64Red Hat Enterprise Linux 8.8, Red Hat Enterprise Linux 8.104.18.X1.26.3-aliyun.1 ≤ version ≤ 1.30.7-aliyun.1
AMD64/x86_64Kylin V104.19.X≥ 1.26.3-aliyun.1
AMD64/x86_64UnionTech OS Server 204.19.X≥ 1.26.3-aliyun.1
AMD64/x86_64Red Hat Enterprise Linux 9.35.14.X≥ 1.30.7-aliyun.1
Arm64CentOS 8.04.19.X≥ 1.14.8-aliyunedge.1
Arm64Ubuntu 18.044.9.X1.14.8-aliyunedge.1 ≤ version ≤ 1.30.7-aliyun.1
Arm64Ubuntu 18.044.19.X≥ 1.14.8-aliyunedge.1
Arm64Ubuntu 20.045.10.X≥ 1.22.15-aliyunedge.1

To add a GPU node, see Add a GPU node.

Add an edge node

The steps differ by cluster version. Use the section that matches your cluster.

Clusters running Kubernetes 1.26 or later

  1. Log on to the ACK console and click Clusters in the left-side navigation pane.

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

  3. On the Node Pools page, find the target node pool and click ![icon](https://help-static-aliyun-doc.aliyuncs.com/assets/img/en-US/5892161761/p537429.png) > Add Existing Node in the Actions column.

  4. On the Add Existing Node page, configure the cloud-edge communication parameters and advanced options.

    If the console parameters don't meet your requirements, edit the edgeadm parameters directly in the generated script. See the edgeadm parameter reference below.

    Cloud-edge communication configuration

    ParameterDescription
    Token validity periodHow long the generated script remains valid. Default: 1 hour. Set to 0 hours for a script that never expires — useful when adding nodes in batches over an extended period.
    Enable silent modeDefault: Yes. In silent mode, edgeadm automatically answers all prompts with yes (for example, when asked whether to reinstall an existing runtime). Set to No to review and confirm each prompt manually.

    Advanced options

    ParameterDescription
    Node labelsLabels to apply to the node. If a label key conflicts with a label set on the node pool, the node pool label takes precedence.
    TaintsTaints to apply to the node.
    AnnotationsAnnotations to apply to the node. If an annotation key conflicts with an annotation set on the node pool, the node pool annotation takes precedence.
    Automatic synchronize timeWhen enabled, edgeadm automatically synchronizes the system clock on the node.
    Node network portThe name of the network interface card (NIC) that kubelet uses to get the node IP and that flannel uses for container networking. Leave blank to use the NIC associated with the default route.
    The component is downloaded fromThe source for system component images. Default: public network. Selecting private network requires the node to be connected to a leased line node pool.
    Runtime working directoryThe working directory for the container runtime. Takes effect only when manageRuntime is set to true. Default for containerd: /var/lib/containerd.

    Add Existing Node page

  5. Click OK. On the submission result page, click Copy, paste the script onto your edge node, and run it. If the following result is returned, the edge node is added to the cluster.

    Success output

Clusters running Kubernetes earlier than 1.26

  1. Log on to the ACK console and click Clusters in the left-side navigation pane.

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

  3. On the Node Pools page, find the target node pool and click More 图标 > Add Existing Node in the Actions column.

  4. On the Add Node page, the Manual mode is selected by default. Manual mode supports ECS instances, ENS instances, and edge nodes. Click Next Step to go to the Instance Information page and configure the node access settings.

    Script validity period defaults to 1 hour. Set it to 0 hours for a script that never expires — useful when adding nodes in batches over an extended period.

    Instance Information page

  5. Click Next Step. On the Complete page, click Copy, paste the script onto your edge node, and run it. If the following result is returned, the edge node is added to the cluster.

    Success output

edgeadm parameter reference

If the console options don't cover your scenario, modify the edgeadm parameters directly in the generated script. The table below lists all available parameters.

ParameterRequiredConsole equivalentDefaultDescription
quietNoEnable silent modetrueControls whether edgeadm automatically answers all prompts with yes. Set to false to review and confirm each prompt — note that this may pause or interrupt the node join process.
manageRuntimeNoN/AtrueControls whether edgeadm detects and installs the container runtime. Set to false if you have already installed the runtime on the node.
nodeNameOverrideNoN/A""The node name. "" uses the hostname. "XXX" sets the name to XXX. "*" generates a random 6-character string. "*.XXX" generates a random 6-character string with the XXX suffix.
allowedClusterAddonsNoN/A["kube-proxy","flannel","coredns"]The components to install on the node.
gpuVersionNoN/A""Specifies the GPU model when adding a GPU-accelerated node. For supported GPU models, see GPU models. For ACK Edge clusters 1.26 and later, NVIDIA GPU models are auto-detected — this parameter is not required.
labelsNoNode labels{}Labels to apply to the node. If a label key conflicts with a label on the node pool, the node pool label takes precedence.
annotationsNoAnnotations{}Annotations to apply to the node. If an annotation key conflicts with an annotation on the node pool, the node pool annotation takes precedence.
taintsNoTaints[]Taints to apply to the node.
nodeIfaceNoN/A""The NIC that kubelet uses to get the node IP and that flannel uses for container networking. When left blank, kubelet checks /etc/hosts for a record matching the hostname first, then falls back to the NIC in the default route. Flannel also uses the default route NIC.
runtimeRootDirNoRuntime working directory""The working directory for the container runtime. Takes effect only when manageRuntime is true. Docker default: /var/lib/docker. containerd default: /var/lib/containerd.
imageRepoTypeNoThe component is downloaded from""The source for system component images. "" auto-selects: leased line node pool nodes use the internal network; regular node pool nodes use the public network. public forces public network. private forces internal network and requires a leased line node pool.
selfHostNtpServerNoAutomatic synchronize timefalseControls time synchronization. false: edgeadm automatically syncs the system clock. true: time has already been synchronized manually; skip auto-sync.
flannelIfaceNoNode network port""The NIC name for flannel. Not recommended — use nodeIface instead. Defaults to the NIC in the node's default route.
enableIptablesNoN/AfalseControls whether edgehub enables iptables optimization. Deprecated after version 1.22.

What's next

References