创建并管理边缘节点池

更新时间:
复制 MD 格式

当企业需要将本地服务器或边缘计算资源纳入 ACK 集群统一管理,且无法通过专线与阿里云 VPC 连接时,可通过ACK托管集群Pro创建边缘节点池,将已有的本地服务器或边缘计算设备加入集群,在保持统一编排的同时充分利用现有 IT 资产。

准备工作

  • 创建ACK托管集群Pro,版本为 1.33 及以上,且 API server 已添加公网 NLB 实例。

  • 为边缘节点创建注册码并保存安装脚本,注册地域需与集群所在地域一致。

步骤一:配置组件

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,单击组件管理

  3. 安装控制面组件terway-hybrid-controlplane

    配置项

    说明

    RemoteContainerCIDR

    边缘节点池使用的容器网段,不能与现有Service网段、Pod 网段、云端节点网段、本地IDC节点网段重合。

    RemoteContainerCIDRMaskSize

    为边缘节点池中每个节点划分容器网段掩码大小。例如设置为24时,每个节点都将使用xxx.xxx.xxx.0/24作为容器网段,支持256个 Pod IP。

    是否开启源地址转换

    边缘节点的 Pod 访问集群外部地址时,是否将其源IP地址转换为节点IP地址。

    如选择关闭,请确保外部网络设备可解析 Pod IP。
  4. 安装terway-hybridyurt-hub-controlplaneyurt-coredns-controlplaneraven-agent-ds、raven-controlplane组件,无需配置参数。

  5. 配置kube-apiserver组件,在featureGates中填入EdgeProxyCrossNetDomainAccessToRaven=true

  6. 配置kube-controller-manager组件,在featureGates中填入NodeAutonomyPodProtection=true

步骤二:创建边缘节点池

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

  3. 节点池 页面,单击创建节点池右侧的... > 创建边缘节点池,配置边缘节点池相关参数:

    • 节点池名称

    • 网络插件

      • 使用 CNI (Terway-Hybrid):专为边缘节点池和混合云节点池提供的容器网络插件。

      • 自行配置 CNI:若需要使用 CNI 插件中的特定功能,ACK 支持使用自定义CNI插件

    • 网络类型

      • Overlay:Terway-HybridOverlay模式,配置简单,对底层网络无特殊要求,部署灵活。

        边缘节点池仅支持Overlay模式。
    • 节点间网络互通:根据该边缘节点池内所有节点是否三层网络互通进行选择,创建节点池后不支持更改。

    • CoreDNS:是否为边缘节点池启用专用 CoreDNS 解析服务(基于集群yurt-coredns-controlplane组件实现)。

      如需访问集群外部域名解析服务,请务必开启 terway-hybrid-controlplane 组件的源地址转换
  4. 节点池创建完成后,可以在控制台修改节点池部分配置项。

步骤三:添加边缘节点

  1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择集群信息

  2. 集群信息页面,单击基本信息页签,单击控制面安全组右侧的ID,放行需要添加的边缘节点的公网 IP。

  3. 将边缘节点添加到节点池,根据是否已经在边缘节点中安装云助手插件,分为两种添加方式:

    1. 添加已有:适用于已注册为阿里云托管实例(已安装云助手)的节点。

      1. 勾选目标节点后单击确定,将节点添加到边缘节点池。

    2. 手动添加:适用于已创建注册码但尚未安装云助手的节点。

      1. 从创建注册码后获取的安装脚本中获取激活码 ID--ActivationId)和激活码 Code--ActivationCode):

        sudo aliyun-service --register --RegionId "******" \
           --ActivationCode "a-******" \
           --ActivationId "CAD3******"
      2. 在控制台上填入激活码 ID激活码 Code,然后单击确定,获取边缘节点池专用安装脚本。

      3. 在节点上批量执行边缘节点池专用安装脚本,在节点上安装云助手并接入边缘节点池。

后续操作

将工作负载调度到边缘节点池

边缘节点池中的节点默认带有以下标签和污点,以避免影响 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"
      ...

配置边缘节点访问集群白名单

raven-controlplane组件在检测到raven-agent-ds组件已安装后,会自动创建一个公网负载均衡实例,用于边缘节点池和ACK集群的通信。如果为该负载均衡配置访问控制白名单,则仅允许白名单内的边缘节点访问并建立连接,避免未授权的边缘节点直接访问 ACK 集群。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,单击组件管理

  3. 找到raven-agent-ds卡片,然后单击配置。在accessControlListEntry中配置白名单地址段,然后单击确认

移除边缘节点

重要

移除边缘节点仅会将节点从节点池移除,不会取消阿里云托管实例的托管状态。

  1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点池

  2. 单击目标边缘节点池名称,选中要删除的节点,在操作列单击image.png > 移除

计费说明

为了实现边缘节点池与集群的通信,Raven 相关组件会自动创建一个按使用量计费的私网 CLB 实例,和一个按量付费(按使用流量计费)的弹性公网IP。具体计费规则,请参见CLB计费规则EIP计费概述

使用限制

  • 边缘节点池兼容部分操作系统,兼容性列表请参见操作系统兼容性

  • Raven 组件自动创建的云资源以k8s/raven-agent-ds/kube-system/{CLUSTER_ID}的格式命名,请勿删除。

    云资源的详细信息保存在kube-system命名空间的名为raven-cfgConfigMap中。

    raven-cfg示例

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: raven-cfg
      namespace: kube-system
    data:
      acl-id: acl-xxx
      acl-entry: ""
      eip-id: eip-xxx
      eip-ip: 47.XX.XX.47
      enable-l7-proxy: "true"
      loadbalancer-id: lb-xxx
      loadbalancer-ip: 192.XX.XX.1

相关文档

边缘节点池使用的相关组件的介绍与发布记录,请参见: