Add an edge node

Updated at:
Copy as MD

Add an edge node to an edge node pool in an ACK Edge cluster with ECS nodes from different regions, IDC nodes, nodes from other cloud providers, or on-premises nodes in factories, stores, vehicles, and ships.

Prerequisites

An ACK Edge cluster is created.

Limitations

  • Ensure your cluster has sufficient node quota. To add more nodes, submit a quota increase request in the Quota Center. See Quotas and limits for ACK Edge cluster quota limits.

  • When you add an edge node, configure its security group to allow access to required domain names. See Public network access configuration.

  • Select a supported operating system for the edge node.

    System architecture

    System version

    Kernel version

    Cluster version

    AMD64/x86_64

    Anolis 7.9 and Anolis 8.6

    4.19.X

    ≥ 1.16.9-aliyunedge.1

    AMD64/x86_64

    Alibaba Cloud Linux 2.1903

    4.19.X

    ≥ 1.20.11-aliyunedge.1

    AMD64/x86_64

    Alibaba Cloud Linux 3

    5.10.X

    ≥ 1.20.11-aliyunedge.1

    AMD64/x86_64

    CentOS 7.4, CentOS 7.5, CentOS 7.6, CentOS 7.7, CentOS 7.8, and CentOS 7.9

    3.10.X

    1.12.6-aliyunedge.1 ≤ cluster version ≤ 1.30.7-aliyun.1

    AMD64/x86_64

    CentOS 8.0 and CentOS 8.2

    4.18.X

    1.18.8-aliyunedge.1 ≤ cluster version ≤ 1.30.7-aliyun.1

    AMD64/x86_64

    Ubuntu 16.04

    4.4.X

    1.18.8-aliyunedge.1 ≤ cluster version ≤ 1.30.7-aliyun.1

    AMD64/x86_64

    Ubuntu 18.04

    4.15.X

    1.12.6-aliyunedge.1 ≤ cluster version ≤ 1.30.7-aliyun.1

    AMD64/x86_64

    Ubuntu 18.04

    5.4.X

    ≥ 1.16.9-aliyunedge.1

    AMD64/x86_64

    Ubuntu 18.04

    5.11.X

    ≥ 1.18.8-aliyunedge.1

    AMD64/x86_64

    Ubuntu 20.04

    5.4.X

    ≥ 1.18.8-aliyunedge.1

    AMD64/x86_64

    Ubuntu 20.04 and Ubuntu 22.04

    5.15.X

    ≥ 1.26.3-aliyun.1

    AMD64/x86_64

    Ubuntu 24.04

    6.8.X

    ≥ 1.30.7-aliyun.1

    AMD64/x86_64

    Red Hat Enterprise Linux 8.8 and Red Hat Enterprise Linux 8.10

    4.18.X

    1.26.3-aliyun.1 ≤ cluster version ≤ 1.30.7-aliyun.1

    AMD64/x86_64

    Kylin V10

    4.19.X

    ≥ 1.26.3-aliyun.1

    AMD64/x86_64

    UnionTech OS Server 20

    4.19.X

    ≥ 1.26.3-aliyun.1

    AMD64/x86_64

    Red Hat Enterprise Linux 9.3

    5.14.X

    ≥ 1.30.7-aliyun.1

    Arm64

    CentOS 8.0

    4.19.X

    ≥ 1.14.8-aliyunedge.1

    Arm64

    Ubuntu 18.04

    4.9.X

    1.14.8-aliyunedge.1 ≤ cluster version ≤ 1.30.7-aliyun.1

    Arm64

    Ubuntu 18.04

    4.19.X

    ≥ 1.14.8-aliyunedge.1

    Arm64

    Ubuntu 20.04

    5.10.X

    ≥ 1.22.15-aliyunedge.1

  • To add GPU nodes, see Add GPU nodes.

Add a node

Kubernetes 1.26 and later

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

  2. On the Clusters page, click the name of your cluster. In the left navigation pane, click Nodes > Node Pools.

  3. On the Node Pools page, select Icon > Add Existing Node from the Actions column to the right of the target node pool.

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

    Note

    If the console parameters do not meet your requirements, modify edgeadm parameters in the generated script. See Parameter list.

    Category

    Parameter

    Description

    Cloud-edge communication

    Token validity period

    Script validity period. Default: 1 hour.

    Specify a longer validity period to reuse the same script for batch node addition.

    Enable silent mode

    Whether to enable silent mode.

    When adding an edge node, some steps require confirmation, such as whether to reinstall an existing runtime.

    By default, all prompts are automatically answered with yes.

    Advanced

    Node labels

    Adds labels to the new node.

    If a label conflicts with a node pool label key, the node pool label takes precedence.

    Taints

    Adds taints to the new node.

    Annotations

    Adds annotations to the new node.

    If annotations conflict with node pool annotations, the node pool annotations take precedence.

    Automatic time synchronization

    When enabled, edgeadm automatically performs time synchronization.

    Node network interface

    The host network interface for the node IP address and container network communication. If empty, the default-route network interface is used.

    Download add-ons from

    Source for downloading system add-on images. Default: Public Network.

    To download images over the internal network, add the node to a leased line node pool.

    Runtime working directory

    Working directory of the runtime. Takes effect only when manageRuntime is true.

    Default path for containerd: /var/lib/containerd.

  5. After configuration, click OK. On the result page, click Copy, then paste and run the script on the edge node.

    After the edge node joins the cluster, the terminal displays logs. The last output line confirms successful node addition.

    I0410 10:54:25.801554    19419 join-node.go:241] [join-node] Config the kubelet service configuration successfully.
    I0410 10:54:25.801590    19419 join-node.go:246] [join-node] Adding edge hub static yaml
    I0410 10:54:25.801662    19419 join-node.go:279] [join-node] Add edge hub static yaml is ok
    I0410 10:54:25.801666    19419 join-node.go:384] [join-node] Start to joining node to cluster.
    I0410 10:54:27.338166    19419 join-node.go:393] [join-node] Join node to cluster successfully.
    I0410 10:54:27.338214    19419 install.go:151] [install-edgehub] Checking edgehub status
    I0410 10:54:37.357405    19419 install.go:156] [install-edgehub] Edgehub is ok
    I0410 10:54:37.357421    19419 install.go:86] [install-edgehub] Reconfiguring the kubelet configuration files.
    I0410 10:54:37.364387    19419 install.go:103] [install-edgehub] Reconfigure the kubelet configuration files successfully.
    I0410 10:54:37.364400    19419 install.go:104] [install-edgehub] Restarting the kubelet.
    I0410 10:54:52.626540    19419 install.go:127] [install-edgehub] Restart the kubelet successfully.
    I0410 10:54:52.626613    19419 postcheck.go:77] [post-check] Checking docker status
    I0410 10:54:52.629194    19419 postcheck.go:86] [post-check] docker is ok
    I0410 10:54:52.629208    19419 postcheck.go:92] [post-check] Checking kubelet status
    I0410 10:54:52.631661    19419 postcheck.go:100] [post-check] Kubelet is ok
    I0410 10:54:52.631671    19419 postcheck.go:106] [post-check] Checking edgehub status
    I0410 10:54:52.642345    19419 postcheck.go:113] [post-check] Edgehub is ok
    I0410 10:54:52.642356    19419 postcheck.go:129] [post-check] Checking addon kube-proxy status.
    I0410 10:54:52.683227    19419 postcheck.go:133] [post-check] kube-proxy is OK.
    I0410 10:54:52.683243    19419 postcheck.go:129] [post-check] Checking addon flannel status.
    I0410 10:54:52.724501    19419 postcheck.go:133] [post-check] flannel is OK.
    I0410 10:54:52.724518    19419 postcheck.go:129] [post-check] Checking addon coredns status.
    I0410 10:54:52.764745    19419 postcheck.go:133] [post-check] coredns is OK.
    I0410 10:54:52.764763    19419 postcheck.go:165] [post-check] Callback to the OpenAPI.
    I0410 10:54:53.014706    19419 postcheck.go:178] [post-check] Callback to the OpenAPI successfully.
    I0410 10:54:53.014760    19419 postcheck.go:66] This node joined into the cluster successfully.

Kubernetes earlier than 1.26

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

  2. On the Clusters page, click the name of your cluster. In the left navigation pane, click Nodes > Node Pools.

  3. On the Node Pools page, in the Actions column for the target node pool, choose Icon > Add Existing Node.

  4. On the Add Node page, Manual is selected by default for adding an existing instance.

    Note

    In manual mode, add on-cloud ECS nodes, Edge Node Service (ENS) nodes, and on-premises nodes.

    1. Click Next to configure node access parameters on the next page. See Parameter list.

      Set Architecture to AMD64/X86_64 or ARM64, select Use Lightweight Access Mode, and then set the access parameters in the JSON editor. For example, set enableIptables, quiet, and manageRuntime to true, and specify kube-proxy, flannel, and coredns in allowedClusterAddons.

      Note

      The default script validity period is 1 hour. Specify a longer period to reuse the script for batch node addition. Set the script validity period to 0 hours for a non-expiring script.

    2. After configuration, click Next. On the Complete page, click Copy, then paste and run the script on the edge node.

Parameter list

If the console parameters do not meet your requirements, modify edgeadm parameters in the generated script as described below.

Parameter

Corresponding console parameter

Description

Value

quiet

Enable silent mode

Whether to enable silent mode. During node registration, some steps require confirmation, such as whether to reinstall an existing runtime.

  • true (default): Automatically answers yes to all prompts.

  • false: Registration pauses for confirmation and can be interrupted.

manageRuntime

N/A

Whether edgeadm detects and installs the runtime.

  • true (default): Detects and installs the runtime.

  • false: Does not install the runtime. Install the runtime on the node in advance.

nodeNameOverride

N/A

The node name.

  • "": Default. The hostname is used.

  • "XXX": The node name is XXX.

  • "*": A random 6-character string is generated.

  • "*.XXX": A random 6-character string with the XXX suffix is generated.

allowedClusterAddons

N/A

Add-ons to install. Default for a standard node: ["kube-proxy","flannel","coredns"].

Default: ["kube-proxy","flannel","coredns"].

gpuVersion

N/A

Whether the node is a GPU node. Default: empty.

See GPU models for supported GPU versions.

"" (default): The node is not added as a GPU node.

ACK Edge clusters running Kubernetes 1.26 or later can add NVIDIA GPU nodes without configuring gpuVersion. The tool automatically detects the GPU model and installs required add-ons.

labels

Node labels

Label to add when the node is registered. If this label key conflicts with a node pool label key, the node pool label takes precedence.

{}: No labels added.

annotations

Annotations

Annotations to add when the node is registered. If these annotations conflict with node pool annotations, the node pool annotations take precedence.

{}: No annotations added.

taints

Taints

Taints to add to the node.

[]

nodeIface

N/A

The host network interface, used to:

  • Obtain node IP information from the specified network interface.

  • Network interface used by the Flannel container network plug-in.

"": If empty, kubelet obtains the node IP address in this order:

  • Searches /etc/hosts for a record matching the hostname.

  • IP address of the default-route network interface.

Flannel uses the default-route network interface.

runtimeRootDir

Runtime working directory

Working directory for the runtime. Takes effect only when manageRuntime is true.

"": Default.

  • If the runtime is Docker, the default path is /var/lib/docker.

  • When the runtime is Containerd, the default path is /var/lib/containerd.

imageRepoType

Download components from

Source from which the node downloads system add-on images.

  • "" (default): Nodes in a leased line node pool download images from the internal network; nodes in a regular node pool download from the public network.

  • public: Downloads images from the public network.

  • private: Downloads images from the internal network. The node must be in a leased line node pool.

selfHostNtpServer

Automatic time synchronization

Whether time synchronization was performed manually.

  • false (default): edgeadm automatically performs time synchronization.

  • true: Skip automatic time synchronization because it was performed manually.

flannelIface

Node network interface

Network interface used by Flannel. Use the nodeIface parameter instead.

"" (default): Flannel uses the default-route network interface.

enableIptables

N/A

Whether edgehub enables iptables optimization. Deprecated in v1.22 and later. Not recommended.

false: iptables optimization is disabled.

References