在CCE Turbo分布式集群中使用边缘云资源
云资源根据部署位置、服务范围和功能特性,可以分为两种类型:
- 中心云资源:集群部署在大型数据中心,提供全局覆盖、高弹性、全功能的云计算服务,如ECS、OBS等。
- 边缘云资源:分布式部署在靠近数据源或终端用户的物理/虚拟设备,提供低延迟、本地化计算能力,如CloudPond等。
CCE Turbo集群可以通过开启对分布式云(homezone/cloudpond)支持的能力,实现中心云与边缘云的无缝协同,让业务同时获得边缘的低延迟与中心的强算力。启用该功能后,单个集群即可统一管理数据中心和边缘站点资源,用户可根据应用需求灵活选择部署位置,具体请参见图1。本文以CloudPond为例,详细说明如何启用分布式云(homezone/cloudpond)支持功能,以及如何在边缘云资源中部署集群业务。
相关概念
- 可用区(Availability Zone,AZ):是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。可用区可以分为两种类型:
- 通用可用区:部署于华为云的数据中心,为公有云用户共享。
- 边缘可用区:部署在用户数据中心,为CloudPond用户专属。
- 分区(Partition):表示云计算资源的逻辑管理单元,用于在Region内或跨可用区统一组织资源,实现中心云与边缘计算资源的协同调度与高效管理。可以从以下几个角度进行理解:
- 计算角度:一个分区是由一个或多个互相隔离但网络位置相近(通常互访时延小于 2ms)的可用区组成的资源集合。将应用分散在一个分区内不同可用区可以实现应用高可用性。
- 分区类型:按资源类别,划分为中心云和边缘分区(一个或多个)。
CCE Turbo分布式集群的网络模型
以CloudPond场景为例,为您介绍CCE Turbo分布式集群的网络框架。

在分布式集群场景中,中心云与边缘分区的节点处于同一VPC,但与传统公有云场景有所不同,具体存在以下特点:
- 每个边缘分区对应一个网络分区(PublicBoardGroup),包含一个或多个边缘位置相近的AZ。每个网络分区与中心云通过Internet或者专线连接进行通信,不同网络分区之间通常无法通信。
- 中心云以及不同边缘分区之间的子网不能混用,存在区位归属关系。
由于边缘分区与网络分区一一对应,因此用户在初始化边缘分区时,需要关联一个网络分区,并在该网络分区创建相应的子网资源,以供节点和容器使用。
操作流程
操作步骤 |
步骤说明 |
费用说明 |
---|---|---|
在创建CCE Turbo集群时,您可以在高级配置中开启对分布式云(homezone/cloudpond)功能。开启此功能后,系统将创建Turbo分布式集群,该集群能够无缝整合并使用CloudPond边缘计算服务资源,实现中心云与边缘云资源的统一管理和调度。 |
开启对分布式支持功能不涉及额外费用,因此本步骤仅涉及集群管理费用,具体请参见价格计算器。 |
|
在集群所在VPC中,创建对应的的边缘子网并与边缘分区绑定,以供节点和容器使用。 |
不涉及费用。 |
|
通过在集群中创建边缘节点,将CloudPond的边缘资源无缝接入Turbo分布式集群,实现中心与边缘的统一管控。 |
不涉及费用。 |
|
当业务对时延要求较高时,可将工作负载部署在边缘节点,以降低数据传输时延、提升响应速度,满足实时性需求。 |
不涉及费用。 |
前提条件
开启对分布式云(homezone/cloudpond)支持的功能前,已提前注册并部署CloudPond服务。
约束与限制
- 边缘云资源约束:使用分布式云资源时,请确保边缘云和中心云之间网络连接有足够带宽,并保证边缘云网络运行正常。若边缘区域出现网络故障,可能影响中心管理面和边缘数据面已部署应用。带宽要求以及网络故障影响,请参见边缘区域网络带宽要求及网络中断影响。
- 集群约束:
步骤一:开启对分布式云支持
创建集群过程中,开启对分布式云(homezone/cloudpond)支持的功能。开启该功能后,CCE将创建Turbo分布式集群,支持对接CloudPond服务。
- 登录CCE控制台。
- 在“集群管理”页面单击“购买集群”。
- 在高级配置中,开启对分布式云(homezone/cloudpond)支持。其他参数说明请参见购买Standard/Turbo集群。
图3 开启对分布式云(homezone/cloudpond)支持
- 所有参数配置完成后,单击“下一步:确认配置”,显示集群资源清单,确认无误后,单击“提交”。
集群创建预计需要5-10分钟,您可以单击“返回集群管理”进行其他操作或单击“查看集群事件列表”后查看集群详情。
步骤二:初始化边缘分区
创建Turbo分布式集群后,系统将自动识别CloudPond服务信息,并为您创建边缘分区。此时,边缘分区尚未初始化,即未绑定节点子网和容器子网。您需在集群所属的VPC中创建边缘子网,并据此初始化边缘分区,为部署集群业务提供必要的网络资源。关于网络连通的具体细节,请参见验证CloudPond和中心云之间的网络连接。
- 依次进行以下步骤,创建边缘可用区子网,用于初始化边缘分区。
- 登录网络控制台,在左侧导航栏单击“虚拟私有云 > 子网”,在右上角单击“创建子网”。
- 在“创建子网”页面,配置相关参数。本示例仅介绍部分参数,具体参数说明请参见为虚拟私有云创建新的子网。
图4 创建子网
表1 创建子网 参数
说明
区域
请选择集群所在区域。
虚拟私有云
请选择集群所在VPC。
可用区类型
请选择边缘可用区,以使用CloudPond的业务资源。
边缘可用区
请选择待使用的CloudPond可用区。
- 参数配置完成后,右下角单击“立即创建”。
- 依次进行以下步骤,初始化边缘分区,即为边缘分区绑定节点子网和容器子网。
- 返回CCE控制台,单击集群名称,进入集群概览页。
- 在左侧导航栏中,单击“集群 > 分区管理”,在左下角“未开通分区 > 本地机房”单击对应分区名称。
- 在“初始化”弹窗中,在“节点子网”和“容器子网”中,皆选择新建的边缘可用区子网,并在右下角单击“确定”。如果有多个可用区子网,您可以根据需求选择合适的子网进行初始化。
图5 初始化边缘分区
- 对边缘分区进行初始化处理。
步骤三:创建边缘节点
需要在集群中创建边缘节点,将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>表示边缘可用区名称
步骤三:将工作负载部署在边缘节点
创建边缘节点后,系统会自动为该节点添加污点“distribution.io/category=IES:NoSchedule”,该污点会阻止未配置容忍策略的工作负载调度到该节点。若需将工作负载调度至边缘节点,需满足以下条件:
- 容忍策略:为工作负载配置污点容忍策略后,该负载将获得被调度至边缘节点的资格。实际能否成功调度取决于节点资源、调度规则等条件。
- 节点亲和性(可选):通过节点亲和调度策略,工作负载可以调度至指定的边缘节点上。
本示例仅介绍部分参数,其他参数说明请参见创建工作负载。
- 在左侧导航栏中,单击“工作负载”,右上角单击“创建工作负载”。
- 在“高级配置”中,单击“容忍策略”,在右侧为工作负载添加“distribution.io/category”容忍策略。更详细的参数说明,请参见设置容忍策略。
图7 配置污点容忍策略
表2 容忍策略参数说明 参数名
参数描述
污点键
请填写“distribution.io/category”。
操作符
请选择“Equal”,设置此操作符表示准确匹配指定污点键和污点值的节点。如果不填写污点值,则表示可以与所有污点键相同的污点匹配。
污点值
请填写“IES”。
污点策略
请选择“NoSchedule”,表示匹配污点策略为NoSchedule的污点。
- (可选,需要将工作负载调度至指定边缘节点时选择该步骤)在“高级配置”中,单击“调度策略”。在右侧“节点亲和”中,选择“自定义亲和策略”,在“必须满足”中添加如下调度策略。添加此调度策略后,工作负载将被调度至某个边缘节点。您可以添加更多策略,实现更细粒度的调度,具体说明请参见设置节点亲和调度(nodeAffinity)。
图8 添加调度策略
- 其他参数配置完成后,右下角单击“创建工作负载”。待工作负载状态变为“运行中”,则说明创建成功。
- 单击工作负载名称,在“实例列表”页签中即可看到该工作负载的Pod实例所在节点,由此可判断是否调度至边缘节点中。如图所示,该负载的Pod实例被调度至“10.12.155.29”节点中,即为步骤三:创建边缘节点中新建的边缘节点。
图9 验证是否调度成功
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 创建一个名为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
- 执行以下命令,创建上述工作负载。
kubectl create -f nginx-deployment.yaml
回显如下,则表示工作负载已开始创建。
deployment.apps/nginx created
- 执行以下命令,查看该负载的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
边缘区域网络带宽要求及网络中断影响
- 创建节点时:网络带宽与节点规模正相关,每100节点需要10MB/s带宽。
- 运行过程中:网络带宽与业务容器大小、下载密度、业务运维数据量(主要是日志)相关。建议配置10MB/s及以上的带宽,可根据实际诉求调整带宽大小。
在边缘区域出现网络故障的情况下,可能会对中心侧管理面、边缘侧数据面已部署的应用产生影响,具体如下:
影响范围 |
中心侧管理面中断 |
边缘侧数据面中断(VPC) |
---|---|---|
云服务管理(新建/删除/配置调整) |
无法使用云服务管理 |
中断相应站点的云服务管理请求无法正常下发至边缘侧数据面 |
云服务实例运行 |
云服务实例运行不受影响 |
|
云服务运维 |
无法执行云服务运维 |
中断相应站点的云服务运维功能受影响 |