计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

云原生网络2.0

更新时间:2024-01-04 GMT+08:00

云原生网络2.0网络模型

云原生网络2.0是自研的新一代容器网络模型,深度整合了虚拟私有云VPC的弹性网卡(Elastic Network Interface,简称ENI)和辅助弹性网卡(Sub Network Interface,简称Sub-ENI)的能力,直接从VPC网段内分配容器IP地址,支持ELB直通容器,绑定安全组,绑定弹性公网IP,享有高性能。

图1 云原生网络2.0

说明如下:

  • 节点内Pod间通信:直接通过VPC的弹性网卡/弹性辅助网卡进行流量转发。
  • 跨节点Pod间通信:直接通过VPC的弹性网卡/弹性辅助网卡进行流量转发。

优缺点

优点

  • 容器网络直接使用的VPC,网络问题易排查、性能最高。
  • 支持VPC内的外部网络与容器IP直通。
  • Pod可直接利用VPC提供的负载均衡、安全组、弹性公网IP等能力。

缺点

由于容器网络直接使用的VPC,消耗VPC的地址空间,创建集群前需要合理规划好容器网段。

适用场景

  • 性能要求高,需要使用VPC其他网络能力的场景:由于云原生网络2.0直接使用的VPC网络,性能与VPC网络的性能几乎一致,所以适用于对带宽、时延要求极高的业务场景。
  • 大规模组网:云原生网络2.0当前最大可支持2000个ECS节点,10万个容器。

容器IP地址管理

云原生网络2.0下的ECS节点使用的是辅助弹性网卡:

  • Pod的IP地址从配置给容器网络的VPC子网上直接分配,无需为节点分配一个单独的小网段。
  • ECS节点添加到集群中,先绑定用于承载辅助弹性网卡的弹性网卡,待弹性网卡绑定完成后,即可绑定辅助弹性网卡。
  • ECS节点上绑定的弹性网卡数:该节点最多可绑定的辅助弹性网卡数/64,向上取整。
  • ECS节点上绑定的总网卡数:用于承载辅助弹性网卡的弹性网卡数+当前Pod使用的辅助弹性网卡数+预热的辅助弹性网卡数
  • Pod创建时,优先从节点的预热网卡池中随机分配一个可用的网卡。
  • Pod删除时,网卡释放回节点的预热网卡池。
  • 节点删除时,将释放节点上所有已绑定的网卡(弹性网卡释放回集群预申请的网卡池,辅助弹性网卡直接删除)。

云原生2.0网络目前支持以下网卡预热策略:节点容器网卡动态预热策略。使用场景如下表所示:

表1 容器网卡预热策略对比表

容器网卡预热策略

节点容器网卡动态预热策略(默认策略)

管理策略

节点最少绑定容器网卡数(nic-minimum-target):保障节点最少有多少张容器网卡绑定在节点上(未被Pod使用+已被Pod使用)

节点预热容器网卡上限检查值(nic-maximum-target):当节点绑定的容器网卡数超过该值,不再主动预热容器网卡

节点动态预热容器网卡数:当Pod使用完节点最少绑定容器网卡数(nic-minimum-target)后,会始终额外预热多少张容器网卡

节点预热容器网卡回收阈值(nic-max-above-warm-target):只有当 节点上空闲的容器网卡数 - 节点动态预热容器网卡数(nic-warm-target) 大于此阈值时,才会触发预热容器网卡的解绑回收

适用场景

在尽可能提高IP资源利用率的前提下,尽可能加快Pod的启动速度,适用于容器网段IP地址数紧张的场景

说明:
  • 1.23.5-r0、1.25.1-r0及以上集群版本支持全部四个容器网卡动态预热参数配置。

针对节点容器网卡动态预热策略,CCE提供了四个参数配置,您可以根据业务规划,集群规模以及节点上可绑定的网卡数,合理设置这四个参数。

表2 容器网卡动态预热参数

容器网卡动态预热参数

默认值

参数说明

配置建议

节点最少绑定容器网卡数(nic-minimum-target)

10

保障节点最少有多少张容器网卡绑定在节点上,支持数值跟百分比两种配置方式。

  • 数值配置:参数值需为正整数。例如10,表示节点最少有10张容器网卡绑定在节点上。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。
  • 百分比配置:参数值范围为1%-100%。例如10%,如果节点容器网卡配额128,表示节点最少有12张(向下取整)容器网卡绑定在节点上。

建议nic-minimum-target与nic-maximum-target为同类型的配置方式(同采用数值配置或同采用百分比配置)。

建议配置为大部分节点平时日常运行的Pod数。

节点预热容器网卡上限检查值(nic-maximum-target)

0

当节点绑定的容器网卡数超过节点预热容器网卡上限检查值(nic-maximum-target),不再主动预热容器网卡。

当该参数大于等于节点最少绑定容器网卡数(nic-minimum-target)时,则开启预热容器网卡上限值检查;反之,则关闭预热容器网卡上限值检查。支持数值跟百分比两种配置方式。

  • 数值配置:参数值需为正整数。例如0,表示关闭预热容器网卡上限值检查。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。
  • 百分比配置:参数值范围为1%-100%。例如50%,如果节点容器网卡配额128,表示节点预热容器网卡上限检查值64(向下取整)。

建议nic-minimum-target与nic-maximum-target为同类型的配置方式(同采用数值配置或同采用百分比配置)。

建议配置为大部分节点平时最多运行的Pod数。

节点动态预热容器网卡数(nic-warm-target)

2

当Pod使用完节点最少绑定容器网卡数(nic-minimum-target)后,会始终额外预热多少张容器网卡,只支持数值配置。

当 节点动态预热容器网卡数(nic-warm-target) + 节点当前绑定的容器网卡数 大于 节点预热容器网卡上限检查值(nic-maximum-target) 时,只会预热nic-maximum-target与节点当前绑定的容器网卡数的差值。

建议配置为大部分节点日常10s内会瞬时弹性扩容的Pod数。

节点预热容器网卡回收阈值(nic-max-above-warm-target)

2

只有当 节点上空闲的容器网卡数 - 节点动态预热容器网卡数(nic-warm-target) 大于此阈值 时,才会触发预热容器网卡的解绑回收。只支持数值配置。

  • 调大此值会减慢空闲容器网卡的回收,加快Pod的启动速度,但会降低IP地址的利用率,特别是在IP地址紧张的场景,请谨慎调大
  • 调小此值会加快空闲容器网卡的回收,提高IP地址的利用率,但在瞬时大量Pod激增的场景,部分Pod启动会稍微变慢。

建议配置为大部分节点日常在分钟级时间范围内会频繁弹性扩容缩容的Pod数 - 大部分节点日常10s内会瞬时弹性扩容的Pod数。

说明:

上述容器网卡动态预热参数支持集群级别的全局配置和节点池级别的差异化配置,其中节点池级别的容器网卡动态预热配置优先级高于集群级别的容器网卡动态预热配置。

容器网络组件会为每个节点维护一个可弹性伸缩的预热容器网卡池 ,定时(约10s一次)检测并计算需要绑定的预热容器网卡数需要解绑的空闲容器网卡数 :
  • 需要绑定的预热容器网卡数 = min(nic-maximum-target - 当前绑定的容器网卡总数,max(nic-minimum-target- 当前绑定的容器网卡总数,nic-warm-target - 当前空闲的容器网卡数))
  • 需要解绑的空闲容器网卡数 = min(当前空闲的容器网卡数 - nic-warm-target- nic-max-above-warm-target,当前绑定的容器网卡总数 - nic-minimum-target)
节点上当前预热的容器网卡数稳态后会维持在以下区间内:
  • 当前预热的容器网卡数区间最小值 = min(max(nic-minimum-target- 当前绑定的容器网卡总数,nic-warm-target), nic-maximum-target - 当前绑定的容器网卡总数)
  • 当前预热的容器网卡数区间最大值 = max(nic-warm-target+ nic-max-above-warm-target, 当前绑定的容器网卡总数 - nic-minimum-target)

Pod创建时,优先从节点的预热容器网卡池中顺序分配(最早未被使用的)一张空闲的容器网卡,如没有可用的空闲网卡,会新创建一张网卡(辅助弹性网卡)或 新绑定一张网卡(弹性网卡)以分配给该Pod。

Pod删除时,对应的容器网卡先释放回节点的预热容器网卡池,2分钟冷却时间内可供下一个Pod循环使用,超过2分钟冷却时间后且节点预热容器网卡池计算出需要释放该容器网卡,才会释放该容器网卡。

网段规划建议

集群网络构成中介绍集群中网络地址可分为节点网络、容器网络、服务网络三块,在规划网络地址时需要从如下方面考虑:

  • 三个网段不能重叠,否则会导致冲突。且集群所在VPC下所有子网(包括扩展网段子网)不能和容器网段、服务网段冲突。
  • 保证每个网段有足够的IP地址可用
    • 节点网段的IP地址要与集群规模相匹配,否则会因为IP地址不足导致无法创建节点。
    • 容器网段的IP地址要与业务规模相匹配,否则会因为IP地址不足导致无法创建Pod。

云原生网络2.0模型下,由于容器网段与节点网段共同使用VPC下的网络地址,建议容器子网与节点子网不要使用同一个子网,否则容易出现IP资源不足导致容器或节点创建失败的情况。

另外云原生网络2.0模型下容器网段支持在创建集群后增加子网,扩展可用IP数量,此时需要注意增加的子网不要与容器网段其他子网存在网络冲突。

云原生网络2.0访问示例

创建一个CCE Turbo集群,集群包含3个ECS节点。

进入其中一个节点,可以看到节点有一个主网卡和扩展网卡,这两个网卡都是弹性网卡,其中扩展网卡是属于容器网络网段,用于给Pod挂载辅助弹性网卡Sub-ENI。

在集群中创建一个Deployment。

kind: Deployment
apiVersion: apps/v1
metadata:
  name: example
  namespace: default
spec:
  replicas: 6
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
        - name: container-0
          image: 'nginx:perl'
          resources:
            limits:
              cpu: 250m
              memory: 512Mi
            requests:
              cpu: 250m
              memory: 512Mi
      imagePullSecrets:
        - name: default-secret

创建后查询Pod。

$ kubectl get pod -owide
NAME                       READY   STATUS    RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES
example-5bdc5699b7-54v7g   1/1     Running   0          7s    10.1.18.2     10.1.0.167   <none>           <none>
example-5bdc5699b7-6dzx5   1/1     Running   0          7s    10.1.18.216   10.1.0.186   <none>           <none>
example-5bdc5699b7-gq7xs   1/1     Running   0          7s    10.1.16.63    10.1.0.144   <none>           <none>
example-5bdc5699b7-h9rvb   1/1     Running   0          7s    10.1.16.125   10.1.0.167   <none>           <none>
example-5bdc5699b7-s9fts   1/1     Running   0          7s    10.1.16.89    10.1.0.144   <none>           <none>
example-5bdc5699b7-swq6q   1/1     Running   0          7s    10.1.17.111   10.1.0.167   <none>           <none>

这里Pod的IP都是Sub-ENI,挂载在节点的ENI上(扩展网卡)。

例如10.1.0.167节点对应的扩展网卡是10.1.17.172。在弹性网卡控制台上可以看到10.1.17.172这块扩展网卡挂载3个Sub-ENI,正是Pod的IP。

在VPC中直接访问Pod的IP,能够正常访问。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容