当企业需要将本地服务器或边缘计算资源纳入 ACK 集群统一管理,且无法通过专线与阿里云 VPC 连接时,可通过ACK托管集群Pro版创建边缘节点池,将已有的本地服务器或边缘计算设备加入集群,在保持统一编排的同时充分利用现有 IT 资产。
准备工作
创建ACK托管集群Pro版,版本为 1.33 及以上,且实现从公网访问API Server。
为边缘节点创建注册码并保存安装脚本,注册地域需与集群所在地域一致。
步骤一:配置组件
-
登录容器服务管理控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,单击组件管理。
安装控制面组件terway-hybrid-controlplane。
配置项
说明
RemoteContainerCIDR
边缘节点池使用的容器网段,不能与现有Service网段、Pod 网段、云端节点网段、本地IDC节点网段重合。
RemoteContainerCIDRMaskSize
为边缘节点池中每个节点划分容器网段掩码大小。例如设置为24时,每个节点都将使用
xxx.xxx.xxx.0/24作为容器网段,支持256个 Pod IP。是否开启源地址转换
边缘节点的 Pod 访问集群外部地址时,是否将其源IP地址转换为节点IP地址。
如选择关闭,请确保外部网络设备可解析 Pod IP。
安装terway-hybrid、yurt-hub-controlplane、yurt-coredns-controlplane、raven-controlplane组件,无需配置参数。
安装raven-agent-ds组件,勾选Raven 组件是否开启代理模式,如果需要设置边缘节点通过公网IP访问集群网络的白名单,请通过accessControlListEntry配置。
配置kube-apiserver组件,在featureGates中填入
EdgeProxyCrossNetDomainAccessToRaven=true。配置kube-controller-manager组件,在featureGates中填入
NodeAutonomyPodProtection=true。
步骤二:创建边缘节点池
-
登录容器服务管理控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。
在 节点池 页面,单击创建节点池右侧的... > 创建边缘节点池,配置边缘节点池相关参数:
节点池名称
网络插件:
使用 CNI (Terway-Hybrid):专为边缘节点池设计,确保集群内 Pod(处于 IDC 或云端)之间的网络互通。
自行配置 CNI:若需要使用 CNI 插件中的特定功能,ACK 支持使用自定义CNI插件。
网络类型:
Overlay:Terway-Hybrid的Overlay模式,配置简单,对底层网络无特殊要求,部署灵活。
边缘节点池仅支持Overlay模式。
节点间网络互通:根据该边缘节点池内所有节点是否三层网络互通进行选择,创建节点池后不支持更改。
CoreDNS:是否为边缘节点池启用专用 CoreDNS 解析服务(基于集群yurt-coredns-controlplane组件实现)。
节点池创建完成后,可以在控制台修改节点池部分配置项。
步骤三:添加边缘节点
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择集群信息。
在集群信息页面,单击基本信息页签,单击控制面安全组右侧的ID,放行需要添加的边缘节点的公网 IP。
将边缘节点添加到节点池,根据是否已经在边缘节点中安装云助手插件,分为两种添加方式:
添加已有:适用于已注册为阿里云托管实例(已安装云助手)的节点。
勾选目标节点后单击确定,将节点添加到边缘节点池。
手动添加:适用于已创建注册码但尚未安装云助手的节点。
从创建注册码后获取的安装脚本中获取激活码 ID(
--ActivationId)和激活码 Code(--ActivationCode):sudo aliyun-service --register --RegionId "******" \ --ActivationCode "a-******" \ --ActivationId "CAD3******"在控制台上填入激活码 ID和激活码 Code,然后单击确定,获取边缘节点池专用安装脚本。
在节点上批量执行边缘节点池专用安装脚本,在节点上安装云助手并接入边缘节点池。
后续操作
将工作负载调度到边缘节点池
边缘节点池中的节点默认带有以下标签和污点,以避免影响 ACK 集群中的已有业务:
apiVersion: v1
kind: Node
metadata:
labels:
alibabacloud.com/nodepool-type: edge
...
spec:
taints:
- effect: NoSchedule
key: nodepool-type
value: "edge"
...需要将工作负载调度到边缘节点时,请添加对此污点的容忍:
如果应用部署不需要区分ECS节点和边缘节点,也可以删除该污点。但请勿删除默认标签 alibabacloud.com/nodepool-type: edge,否则会影响产品功能。apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment
spec:
replicas: 1
selector:
matchLabels:
app: deployment
template:
metadata:
labels:
app: deployment
spec:
tolerations: # 容忍边缘节点池污点
- key: "nodepool-type"
operator: "Equal"
value: "edge"
effect: "NoSchedule"
...移除边缘节点
移除边缘节点仅会将节点从节点池移除,不会取消阿里云托管实例的托管状态。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。
单击目标边缘节点池名称,选中要删除的节点,在操作列单击
> 移除。
使用限制
边缘节点池兼容部分操作系统,兼容性列表请参见操作系统兼容性。
相关文档
边缘节点池使用的相关组件的介绍与发布记录,请参见: