文档首页/ 云容器引擎 CCE/ 用户指南/ 集群/ 购买集群/ 在CCE Turbo分布式集群中使用边缘云资源
更新时间:2025-08-27 GMT+08:00
分享

在CCE Turbo分布式集群中使用边缘云资源

云资源根据部署位置、服务范围和功能特性,可以分为两种类型:

  • 中心云资源:集群部署在大型数据中心,提供全局覆盖、高弹性、全功能的云计算服务,如ECS、OBS等。
  • 边缘云资源:分布式部署在靠近数据源或终端用户的物理/虚拟设备,提供低延迟、本地化计算能力,如CloudPond等。

CCE Turbo集群可以通过开启对分布式云(homezone/cloudpond)支持的能力,实现中心云与边缘云的无缝协同,让业务同时获得边缘的低延迟与中心的强算力。启用该功能后,单个集群即可统一管理数据中心和边缘站点资源,用户可根据应用需求灵活选择部署位置,具体请参见图1。本文以CloudPond为例,详细说明如何启用分布式云(homezone/cloudpond)支持功能,以及如何在边缘云资源中部署集群业务。

图1 CCE Turbo分布式管理

相关概念

  • 可用区(Availability Zone,AZ):是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。可用区可以分为两种类型:
    • 通用可用区:部署于华为云的数据中心,为公有云用户共享。
    • 边缘可用区:部署在用户数据中心,为CloudPond用户专属。
  • 分区(Partition):表示云计算资源的逻辑管理单元,用于在Region内或跨可用区统一组织资源,实现中心云与边缘计算资源的协同调度与高效管理。可以从以下几个角度进行理解:
    • 计算角度:一个分区是由一个或多个互相隔离但网络位置相近(通常互访时延小于 2ms)的可用区组成的资源集合。将应用分散在一个分区内不同可用区可以实现应用高可用性。
    • 分区类型:按资源类别,划分为中心云和边缘分区(一个或多个)。

CCE Turbo分布式集群的网络模型

以CloudPond场景为例,为您介绍CCE Turbo分布式集群的网络框架。

图2 CCE Turbo分布式集群的网络图

在分布式集群场景中,中心云与边缘分区的节点处于同一VPC,但与传统公有云场景有所不同,具体存在以下特点:

  • 每个边缘分区对应一个网络分区(PublicBoardGroup),包含一个或多个边缘位置相近的AZ。每个网络分区与中心云通过Internet或者专线连接进行通信,不同网络分区之间通常无法通信。
  • 中心云以及不同边缘分区之间的子网不能混用,存在区位归属关系。

由于边缘分区与网络分区一一对应,因此用户在初始化边缘分区时,需要关联一个网络分区,并在该网络分区创建相应的子网资源,以供节点和容器使用。

操作流程

操作步骤

步骤说明

费用说明

步骤一:开启对分布式云支持

在创建CCE Turbo集群时,您可以在高级配置中开启对分布式云(homezone/cloudpond)功能。开启此功能后,系统将创建Turbo分布式集群,该集群能够无缝整合并使用CloudPond边缘计算服务资源,实现中心云与边缘云资源的统一管理和调度。

开启对分布式支持功能不涉及额外费用,因此本步骤仅涉及集群管理费用,具体请参见价格计算器

步骤二:初始化边缘分区

在集群所在VPC中,创建对应的的边缘子网并与边缘分区绑定,以供节点和容器使用。

不涉及费用。

步骤三:创建边缘节点

通过在集群中创建边缘节点,将CloudPond的边缘资源无缝接入Turbo分布式集群,实现中心与边缘的统一管控。

不涉及费用。

步骤三:将工作负载部署在边缘节点

当业务对时延要求较高时,可将工作负载部署在边缘节点,以降低数据传输时延、提升响应速度,满足实时性需求。

不涉及费用。

前提条件

开启对分布式云(homezone/cloudpond)支持的功能前,已提前注册并部署CloudPond服务。

约束与限制

步骤一:开启对分布式云支持

创建集群过程中,开启对分布式云(homezone/cloudpond)支持的功能。开启该功能后,CCE将创建Turbo分布式集群,支持对接CloudPond服务。

  1. 登录CCE控制台
  2. “集群管理”页面单击“购买集群”。
  3. 在高级配置中,开启对分布式云(homezone/cloudpond)支持。其他参数说明请参见购买Standard/Turbo集群

    图3 开启对分布式云(homezone/cloudpond)支持

  4. 所有参数配置完成后,单击“下一步:确认配置”,显示集群资源清单,确认无误后,单击“提交”

    集群创建预计需要5-10分钟,您可以单击“返回集群管理”进行其他操作或单击“查看集群事件列表”后查看集群详情。

步骤二:初始化边缘分区

创建Turbo分布式集群后,系统将自动识别CloudPond服务信息,并为您创建边缘分区。此时,边缘分区尚未初始化,即未绑定节点子网和容器子网。您需在集群所属的VPC中创建边缘子网,并据此初始化边缘分区,为部署集群业务提供必要的网络资源。关于网络连通的具体细节,请参见验证CloudPond和中心云之间的网络连接

  1. 依次进行以下步骤,创建边缘可用区子网,用于初始化边缘分区。

    1. 登录网络控制台,在左侧导航栏单击“虚拟私有云 > 子网”,在右上角单击“创建子网”
    2. “创建子网”页面,配置相关参数。本示例仅介绍部分参数,具体参数说明请参见为虚拟私有云创建新的子网
      图4 创建子网

      表1 创建子网

      参数

      说明

      区域

      请选择集群所在区域。

      虚拟私有云

      请选择集群所在VPC。

      可用区类型

      请选择边缘可用区,以使用CloudPond的业务资源。

      边缘可用区

      请选择待使用的CloudPond可用区。

    3. 参数配置完成后,右下角单击“立即创建”

  2. 依次进行以下步骤,初始化边缘分区,即为边缘分区绑定节点子网和容器子网。

    1. 返回CCE控制台,单击集群名称,进入集群概览页。
    2. 在左侧导航栏中,单击“集群 > 分区管理”,在左下角“未开通分区 > 本地机房”单击对应分区名称。
    3. 在“初始化”弹窗中,在“节点子网”“容器子网”中,皆选择新建的边缘可用区子网,并在右下角单击“确定”。如果有多个可用区子网,您可以根据需求选择合适的子网进行初始化。
      图5 初始化边缘分区

  3. 对边缘分区进行初始化处理。

步骤三:创建边缘节点

需要在集群中创建边缘节点,将CloudPond的边缘资源无缝接入Turbo分布式集群,实现中心与边缘的统一管控。

在集群中创建的边缘节点,默认会添加以下污点和K8s标签:

  • 污点:distribution.io/category=IES:NoSchedule
  • K8s标签:
    • distribution.io/category=IES
    • distribution.io/partition=<AZ name>,其中<AZ name>表示边缘可用区名称
    • distribution.io/publicbordergroup=<AZ name>,其中<AZ name>表示边缘可用区名称
  1. 返回CCE控制台,单击集群名称,进入集群概览页。
  2. 在左侧导航栏中,单击“集群 > 节点管理”,切换至“节点”页签,右上角单击“创建节点”
  3. “节点配置”中,“计费模式”请选择“按需计费”“可用区”请选择对应的边缘可用区,其他配置参数请参见创建节点
  4. 参数配置完成后,右下角单击“下一步:规格确认”。确认配置信息无误后,右下角单击“提交”,节点开始创建。单击“返回节点列表”,待状态为运行中,表示节点创建成功。

    添加节点预计需要6-10分钟左右,请耐心等待。

    图6 节点创建成功

步骤三:将工作负载部署在边缘节点

创建边缘节点后,系统会自动为该节点添加污点“distribution.io/category=IES:NoSchedule”,该污点会阻止未配置容忍策略的工作负载调度到该节点。若需将工作负载调度至边缘节点,需满足以下条件:

  • 容忍策略:为工作负载配置污点容忍策略后,该负载将获得被调度至边缘节点的资格。实际能否成功调度取决于节点资源、调度规则等条件。
  • 节点亲和性(可选):通过节点亲和调度策略,工作负载可以调度至指定的边缘节点上。

本示例仅介绍部分参数,其他参数说明请参见创建工作负载

  1. 在左侧导航栏中,单击“工作负载”,右上角单击“创建工作负载”。
  2. 在“高级配置”中,单击“容忍策略”,在右侧为工作负载添加“distribution.io/category”容忍策略。更详细的参数说明,请参见设置容忍策略

    图7 配置污点容忍策略
    表2 容忍策略参数说明

    参数名

    参数描述

    污点键

    请填写“distribution.io/category”。

    操作符

    请选择“Equal”,设置此操作符表示准确匹配指定污点键和污点值的节点。如果不填写污点值,则表示可以与所有污点键相同的污点匹配。

    污点值

    请填写“IES”。

    污点策略

    请选择“NoSchedule”,表示匹配污点策略为NoSchedule的污点。

  3. (可选,需要将工作负载调度至指定边缘节点时选择该步骤)在“高级配置”中,单击“调度策略”。在右侧“节点亲和”中,选择“自定义亲和策略”,在“必须满足”中添加如下调度策略。添加此调度策略后,工作负载将被调度至某个边缘节点。您可以添加更多策略,实现更细粒度的调度,具体说明请参见设置节点亲和调度(nodeAffinity)

    图8 添加调度策略

  4. 其他参数配置完成后,右下角单击“创建工作负载”。待工作负载状态变为“运行中”,则说明创建成功。
  5. 单击工作负载名称,在“实例列表”页签中即可看到该工作负载的Pod实例所在节点,由此可判断是否调度至边缘节点中。如图所示,该负载的Pod实例被调度至“10.12.155.29”节点中,即为步骤三:创建边缘节点中新建的边缘节点。

    图9 验证是否调度成功

  1. 请参见通过kubectl连接集群,使用kubectl连接集群。
  2. 创建一个名为nginx-deployment.yaml的描述文件。其中,nginx-deployment.yaml为自定义名称,您可以随意命名。

    vi nginx-deployment.yaml
    文件内容如下。关于容忍策略和节点亲和调度策略的具体参数说明,请参见设置容忍策略设置节点亲和调度(nodeAffinity)
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      strategy:
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - image: nginx    #若使用“开源镜像中心”的镜像,可直接填写镜像名称;若使用“我的镜像”中的镜像,请在SWR中获取具体镜像地址。
            imagePullPolicy: Always
            name: nginx
          imagePullSecrets:
          - name: default-secret
          tolerations:  # 增加污点容忍策略
            - key: node.kubernetes.io/not-ready
              operator: Exists
              effect: NoExecute
              tolerationSeconds: 300
            - key: node.kubernetes.io/unreachable
              operator: Exists
              effect: NoExecute
              tolerationSeconds: 300
            - key: distribution.io/category  # 表示污点键,请设置为distribution.io/category
              operator: Equal  # 表示操作符,请设置为“Equal”,用于准确匹配指定污点键和污点值的节点。
              value: IES       # 表示污点值,请设置为“IES”
              effect: NoSchedule  # 表示污点策略,请设置为NoSchedule,用于匹配污点策略为NoSchedule的污点
          affinity:  # 设置调度策略
            nodeAffinity:  # 表示节点亲和性调度
              requiredDuringSchedulingIgnoredDuringExecution:  # 表示必须满足的调度策略
                nodeSelectorTerms:       # 根据节点标签选择满足条件的节点
                  - matchExpressions:    # 节点标签匹配规则
                    - key: distribution.io/category   # 节点标签的键为distribution.io/category
                      operator: In  # 表示存在values列表中的值即满足规则
                      values:       # 节点标签的值为IES
                      - IES

  3. 执行以下命令,创建上述工作负载。

    kubectl create -f nginx-deployment.yaml

    回显如下,则表示工作负载已开始创建。

    deployment.apps/nginx created

  4. 执行以下命令,查看该负载的Pod是否创建成功,并查看Pod所在节点。

    kubectl get deployment -o wide

    由回显结果可知,Pod实例状态为Running,则说明创建成功。且该Pod实例被调度至“10.12.155.29”节点中,即为步骤三:创建边缘节点中新建的边缘节点。

    NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE           
    nginx-856bb778d4-vt8r5   1/1     Running   0          13m   10.12.0.249   10.12.155.29

边缘区域网络带宽要求及网络中断影响

CloudPond和中心云之间通过Internet或者专线连接,CCE Turbo集群使用分布式云资源时,对于边缘区域的网络连接(即“业务通信链路”)存在带宽要求,关于“业务通信链路”的详细说明请参见组网方案和要求。具体要求如下:
  • 创建节点时:网络带宽与节点规模正相关,每100节点需要10MB/s带宽。
  • 运行过程中:网络带宽与业务容器大小、下载密度、业务运维数据量(主要是日志)相关。建议配置10MB/s及以上的带宽,可根据实际诉求调整带宽大小。

在边缘区域出现网络故障的情况下,可能会对中心侧管理面、边缘侧数据面已部署的应用产生影响,具体如下:

影响范围

中心侧管理面中断

边缘侧数据面中断(VPC)

云服务管理(新建/删除/配置调整)

无法使用云服务管理

中断相应站点的云服务管理请求无法正常下发至边缘侧数据面

云服务实例运行

云服务实例运行不受影响

  • 在中断时,云服务实例稳态运行不受影响,网络恢复后云服务实例可能发生迁移。
  • 容器一旦发生重启(包括但不限于手动停止容器、节点发生重启、业务自身异常导致容器退出等),将无法启动。

云服务运维

无法执行云服务运维

中断相应站点的云服务运维功能受影响

相关文档

相关文档