This topic describes how to add an edge node as a worker node to an existing Container Service for Kubernetes (ACK) edge cluster in the ACK console. Make sure that the node to be added can communicate with the Kubernetes API server of the cluster. You can add Elastic Compute Service (ECS) instances, Edge Node Service (ENS) instances, and on-premises servers to an ACK edge cluster.

Prerequisites

  • An ACK edge cluster is created. For more information, see Create a managed edge Kubernetes cluster.
  • ENS is activated and an edge service is created if you want the system to automatically add edge nodes.
  • If you want to manually add an edge node in lightweight mode, the edge node must have at least 1 vCPU and 256 MB of memory. For more information, see Quick start.

Limits

  • Make sure that you have a sufficient node quota in the cluster. To add more nodes, to apply for a quota increase. For more information about the quota limits related to ACK edge clusters, see Limits.
  • Only ENS nodes with at least 2 vCPUs and 4 GB of memory can be automatically added to an ACK edge cluster. In addition, the ENS nodes must be in the Running state and run CentOS 7.4 or 7.6.
  • If you want to manually add nodes, the nodes must run operating systems that are listed in the following table.
    OS architecture OS version Kernel version Kubernetes version
    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 and later
    AMD64/X86_64 CentOS 8.0 and CentOS 8.2 4.18.X 1.18.8-aliyunedge.1 and later
    AMD64/X86_64 Ubuntu 16.04 4.4.X 1.18.8-aliyunedge.1 and later
    AMD64/X86_64 Ubuntu 18.04 4.15.X 1.12.6-aliyunedge.1 and later
    AMD64/X86_64 Ubuntu 18.04 5.4.X 1.16.9-aliyunedge.1 and later
    AMD64/X86_64 Ubuntu 18.04 5.11.X 1.18.8-aliyunedge.1 and later
    AMD64/X86_64 Ubuntu 20.04 5.4.X 1.18.8-aliyunedge.1 and later
    AMD64/X86_64 AliyunLinux 2.1903 4.19.X 1.20.11-aliyunedge.1 and later
    AMD64/X86_64 AliyunLinux 3 5.10.X 1.20.11-aliyunedge.1 and later
    ARM64 CentOS 8.0 4.19.X 1.14.8-aliyunedge.1 and later
    ARM64 Ubuntu 18.04 4.9.X 1.14.8-aliyunedge.1 and later
    ARM64 Ubuntu 18.04 4.19.X 1.14.8-aliyunedge.1 and later

Add a node

  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 a cluster and choose Nodes > Node Pools in the left-side navigation pane.
  3. On the Node Pools page, find the node pool that you want to manage and choose More > Add Existing Node in the Actions column.
  4. On the page that appears, you can select Manual to manually add existing instances.
    Note In Manual mode, you can add ECS instances, ENS instances, and on-premises servers.
    1. Click Next Step to go to the Instance Information wizard page. You can choose whether to add the node in lightweight mode and then set the parameters that are used to add the node. For more information, see Parameters.
      Note The default value of Script Validity Period is 1 hour. If you want to use the script for more than 1 hour, you can set the validity period to meet your requirement. If you set Script Validity Period to 0 hours, the script is permanently valid.
    2. After you set the parameters, click Next Step. On the Complete wizard page, click Copy to copy the script to the edge node that you want to add. Then, execute the script on the node.

    If the following result is returned, the edge node is added to the cluster.

    The node is added

Parameters

Parameter Description Description Standard mode Lightweight mode
flannelIface The name of the network interface controller (NIC) that is used by the Flannel plug-in. The name of the NIC that is recorded in the default route entry of the node. √ ×
enableIptables Specifies whether to enable iptables. false √ ×
quiet Specifies whether to answer all questions with yes when you add nodes. false √ √
manageRuntime Specifies whether to use edgeadm to install and manage the runtime. false √ √
nodeNameOverride The name of the node.
  • "": This is the default value. This value indicates that the hostname is used as the node name.
  • "*": This value indicates that a random string that contains six characters is used as the node name.
  • "*.XXX": This value indicates that a random string that is appended with a suffix is used as the node name. The random string contains six characters.
√ √
allowedClusterAddons The list of components to be installed. By default, this parameter is empty. This indicates that no component is installed. For a regular node, set this parameter to ["kube-proxy","flannel","coredns"]. [] √ √
gpuVersion Specifies whether the node to be added is a GPU-accelerated node. By default, this parameter is empty. Supported GPU models are Nvidia_Tesla_T4, Nvidia_Tesla_P4, Nvidia_Tesla_P100, Nvidia_Tesla_V100, and Nvidia_Tesla_A100. "": This is the default value. This value indicates that the node to be added is not a GPU-accelerated node. √ ×
inDedicatedNetwork Specifies whether an Express Connect circuit is used to add the node to the ACK edge cluster. false √ ×
labels Specifies the labels to be added to the node. {} √ √
annotations Specifies the annotations to be added to the node configurations. {} √ √
nodeIface This parameter specifies the following information:
  • This parameter specifies that kubelet retrieves the node IP address from the specified network interface. If you do not set this parameter, kubelet attempts to retrieve the node IP address in the following order:
    • Searches /etc/hosts for the node whose name is the same as the specified hostname.
    • Retrieves the IP address of the network interface that is specified in the default route entry of the node.
  • This parameter specifies the name of the NIC that is used by Flannel. In this case, this parameter is equivalent to the flannelIface parameter. This parameter will replace the flannelIface parameter in the future.
"" √ ×
interconnectMode Specifies how the node is connected to the cloud.
  • normal: The node is connected to the cloud over the Internet.
  • private: The node is connected to the cloud over an Express Connect circuit.
  • improved: The node is connected to the cloud by using a Cloud Connect Network (CCN) instance.
√ ×
isLightWeight Specifies whether to add the node in lightweight mode.
  • Default value: false. The default value indicates that the standard mode is used. You must set the parameters that are supported by the standard mode.
  • If you set the parameter to true, the node is added in lightweight mode. In this case, you must set the parameters that are supported by the lightweight mode.
× √

Public IP addresses to be accessed when you add nodes

Public IP address Description
cs-anony.aliyuncs.com None
aliacs-k8s-{{region}}.oss-{{region}}.aliyuncs.com {{region}} specifies the ID of the region where the ACK edge cluster is deployed. Example: cn-hangzhou.
Public endpoint of the API server You can view the public endpoint of the API server on the Basic Information tab.
The IP address of the Internet-facing SLB instance that is created for tunnel-server The public endpoint of Services in the cluster kube-system/x-tunnel-server-svc.
ntp1.aliyun.com cn.ntp.org.cn None
dockerauth-{{region}}.aliyuncs.com {{region}} specifies the ID of the region where the ACK edge cluster is deployed. Example: cn-hangzhou.
aliregistry-{{region}}.oss-{{region}}.aliyuncs.com {{region}} specifies the ID of the region where the ACK edge cluster is deployed. Example: cn-hangzhou.
registry.{{region}}.aliyuncs.com {{region}} specifies the ID of the region where the ACK edge cluster is deployed. Example: cn-hangzhou.
System tools: net-tools, iproute, chrony (or ntpdate), crontabs, pciutils, socat, ebtables, iptables, and conntrack-tools
  • Check whether the system tools are installed on the node to be added. If the system tools are not installed, the system installs the tools on the node.
  • If the OS is Ubuntu, apt-get is used to install the tools. If the OS is CentOS, yum is used to install the tools.