计算
弹性云服务器 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
文档首页/ 云容器引擎 CCE/ 用户指南/ 节点/ 节点运维/ 默认数据盘空间分配说明

默认数据盘空间分配说明

更新时间:2025-02-18 GMT+08:00

本章节将详细介绍节点数据盘空间分配的情况,以便您根据业务实际情况配置数据盘大小。

设置默认数据盘空间分配

说明:
  • v1.23.18-r0、v1.25.13-r0、v1.27.10-r0、v1.28.8-r0、v1.29.4-r0以下版本的集群中,节点会添加一块默认数据盘供容器运行时和Kubelet组件使用,您可以自定义默认数据盘的空间分配
  • v1.23.18-r0、v1.25.13-r0、v1.27.10-r0、v1.28.8-r0、v1.29.4-r0及以上版本的集群中,如果“系统组件存储”选择“数据盘”,节点才会添加一块默认数据盘供容器运行时和Kubelet组件单独使用,您可以自定义默认数据盘的空间分配。

在创建节点时,您可在存储配置中,单击“展开高级配置”,自定义默认数据盘的空间分配

图1 设置数据盘空间分配

  • 容器引擎空间分配
    • 指定磁盘空间:CCE将数据盘空间默认划分为两块,一块用于存放容器引擎 (Docker/Containerd) 工作目录、容器镜像的数据和镜像元数据;另一块用于Kubelet组件和EmptyDir临时存储等。容器引擎空间的剩余容量将会影响镜像下载和容器的启动及运行。
      • 容器引擎和容器镜像空间(默认占90%):用于容器运行时工作目录、存储容器镜像数据以及镜像元数据。
      • Kubelet组件和EmptyDir临时存储(默认占10%):用于存储Pod配置文件、密钥以及临时存储EmptyDir等挂载数据。
      说明:

      当“容器引擎和容器镜像空间”和“Kubelet组件和EmptyDir临时存储空间”分配比例之和不满100%时,剩余空间将分配给用户数据使用,您可以将其挂载到指定路径下。挂载路径请填写业务目录路径,不可设置为空或根目录等操作系统关键路径。

    • 共享磁盘空间:v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及之后版本的集群中,CCE使用的数据盘支持采用容器引擎和Kubelet共享磁盘空间的方式,即不再划分容器引擎 (Docker/Containerd) 和Kubelet组件的空间。
  • Pod容器空间分配:即容器的basesize设置,每个工作负载下的容器组 Pod 占用的磁盘空间设置上限(包含容器镜像占用的空间)。合理的配置可避免容器组无节制使用磁盘空间导致业务异常。建议此值不超过容器引擎空间的 80%。该参数与节点操作系统和容器存储Rootfs相关,部分场景下不支持设置。详情请参见操作系统与容器存储Rootfs对应关系
  • 写入模式:
    • 线性:线性逻辑卷是将一个或多个物理卷整合为一个逻辑卷,实际写入数据时会先往一个基本物理卷上写入,当存储空间占满时再往另一个基本物理卷写入。
    • 条带化:有两块以上数据盘时才可支持选择条带化模式。创建逻辑卷时指定条带化,当实际写入数据时会将连续数据分成大小相同的块,然后依次存储在多个物理卷上,实现数据的并发读写从而提高读写性能。条带化模式的存储池不支持扩容。

容器引擎空间分配

对于容器引擎和Kubelet共享磁盘空间的节点,容器存储Rootfs为OverlayFS类型,数据盘空间分配详情请参见容器引擎和Kubelet共享磁盘空间说明

对于容器引擎和Kubelet不共享磁盘空间的节点,数据盘根据容器存储Rootfs不同具有两种划分方式(以100G大小为例):Device Mapper类型OverlayFS类型。不同操作系统对应的容器存储Rootfs请参见操作系统与容器存储Rootfs对应关系

  • Device Mapper类型存储Rootfs
    其中默认占90%的容器引擎和容器镜像空间又可分为以下两个部分:
    • 其中/var/lib/docker用于Docker工作目录,默认占比20%,其空间大小 = 数据盘空间 * 90% * 20%
    • thinpool用于存储容器镜像数据、镜像元数据以及容器使用的磁盘空间,默认占比为80%,其空间大小 = 数据盘空间 * 90% * 80%

      thinpool是动态挂载,在节点上使用df -h命令无法查看到,使用lsblk命令可以查看到。

    图2 Device Mapper类型容器引擎空间分配
  • OverlayFS类型存储Rootfs

    相比Device Mapper存储引擎,没有单独划分thinpool,容器引擎和容器镜像空间(默认占90%)都在/var/lib/docker目录下。

    图3 OverlayFS类型容器引擎空间分配

Pod容器空间分配

自定义Pod容器空间(basesize)设置与节点操作系统和容器存储Rootfs相关(容器存储Rootfs请参见操作系统与容器存储Rootfs对应关系):

  • Device Mapper模式下支持自定义Pod容器空间(basesize)配置,默认值为10GiB。
  • OverlayFS模式默认不限制Pod容器空间大小。

配置Pod容器空间(basesize)时,需要同时考虑创建节点时的最大实例数配置。理想情况下,容器引擎空间需要大于容器使用的磁盘总空间,即:容器引擎和容器镜像空间(默认占90%) > 容器数量 * Pod容器空间(basesize)。否则,可能会引起节点分配的容器引擎空间不足,从而导致容器启动失败。

图4 创建节点时的最大实例数配置

对于支持配置basesize的节点,尽管可以限制单个容器的主目录大小(开启时默认为10GiB),但节点上的所有容器还是共用节点的thinpool磁盘空间,并不是完全隔离,当一些容器使用大量thinpool空间且总和达到节点thinpool空间上限时,也会影响其他容器正常运行。

另外,在容器的主目录中创删文件后,其占用的thinpool空间不会立即释放,因此即使basesize已经配置为10GiB,而容器中不断创删文件时,占用的thinpool空间会不断增加一直到10GiB为止,后续才会复用这10GiB空间。如果节点上的容器数量*basesize > 节点thinpool空间大小,理论上有概率出现节点thinpool空间耗尽的场景。

操作系统与容器存储Rootfs对应关系

表1 CCE集群节点操作系统与容器引擎对应关系

操作系统

容器存储Rootfs

自定义Pod容器空间(basesize)

CentOS 7.x

v1.19.16以下版本集群使用Device Mapper

v1.19.16及以上版本集群使用OverlayFS

Rootfs为Device Mapper且容器引擎为Docker时支持自定义Pod容器空间,默认值为10G。

Rootfs为OverlayFS时不支持自定义Pod容器空间。

EulerOS 2.3

Device Mapper

仅容器引擎为Docker时支持自定义Pod容器空间,默认值为10G。

EulerOS 2.5

Device Mapper

仅容器引擎为Docker时支持自定义Pod容器空间,默认值为10G。

EulerOS 2.8

v1.19.16-r2以下版本集群使用Device Mapper

v1.19.16-r2及以上版本集群使用OverlayFS

Rootfs为Device Mapper且容器引擎为Docker时支持自定义Pod容器空间,默认值为10G。

Rootfs为OverlayFS且容器引擎为Docker时支持自定义Pod容器空间,默认值为不限制。

EulerOS 2.9

OverlayFS

v1.19.16-r0、v1.21.3-r0、v1.23.3-r0及以上的集群版本中,Docker支持自定义Pod容器空间,默认值为不限制。

集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上时,containerd支持自定义Pod容器空间,默认值为不限制。

v1.19.16-r0、v1.21.3-r0、v1.23.3-r0以前的集群版本不支持自定义Pod容器空间。

EulerOS 2.10

OverlayFS

集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0以下时,仅容器引擎为Docker时支持自定义Pod容器空间,默认值为不限制。

集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上时,Docker和containerd均支持自定义Pod容器空间,默认值为不限制。

Ubuntu 18.04

OverlayFS

不支持自定义Pod容器空间。

Ubuntu 22.04

OverlayFS

不支持自定义Pod容器空间。

Huawei Cloud EulerOS 1.1

OverlayFS

不支持自定义Pod容器空间。

Huawei Cloud EulerOS 2.0

OverlayFS

集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0以下时,仅容器引擎为Docker时支持自定义Pod容器空间,默认值为不限制。

集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上时,Docker和containerd均支持自定义Pod容器空间,默认值为不限制。

表2 CCE Turbo集群节点操作系统与容器引擎对应关系

操作系统

容器存储Rootfs

自定义Pod容器空间(basesize)

CentOS 7.x

OverlayFS

不支持自定义Pod容器空间。

Ubuntu 18.04

OverlayFS

不支持自定义Pod容器空间。

Ubuntu 22.04

OverlayFS

不支持自定义Pod容器空间。

EulerOS 2.9

OverlayFS

Rootfs为OverlayFS且仅容器引擎为Docker时支持自定义Pod容器空间,默认值为不限制。集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上时,Docker和containerd均支持自定义Pod容器空间。

EulerOS 2.10

弹性云服务器-物理机使用Device Mapper

Rootfs为Device Mapper且容器引擎为containerd时支持自定义Pod容器空间,默认值为10G。

Huawei Cloud EulerOS 1.1

OverlayFS

不支持自定义Pod容器空间。

Huawei Cloud EulerOS 2.0

OverlayFS

集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0以下时,仅容器引擎为Docker时支持自定义Pod容器空间,默认值为不限制。

集群版本为v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上时,Docker和containerd均支持自定义Pod容器空间,默认值为不限制。

镜像回收策略说明

当容器引擎空间不足时,会触发镜像垃圾回收。

镜像垃圾回收策略只考虑两个因素:HighThresholdPercent 和 LowThresholdPercent。 磁盘使用率超过上限阈值(HighThresholdPercent,默认值为80%)将触发垃圾回收。 垃圾回收将删除最近最少使用的镜像,直到磁盘使用率满足下限阈值(LowThresholdPercent,默认值为70%)。

容器引擎空间大小配置建议

  • 容器引擎空间需要大于容器使用的磁盘总空间,即:容器引擎空间 > 容器数量 * Pod容器空间(basesize)
  • 容器业务的创删文件操作建议在容器挂载的本地存储(如emptyDir、hostPath)或云存储的目录中进行,这样不会占用thinpool空间。其中Emptydir使用的是kubelet空间,需要规划好kubelet空间的大小。
  • 可将业务部署在使用OverlayFS存储模式的节点上(请参见操作系统与容器存储Rootfs对应关系),避免容器内创删文件后占用的磁盘空间不立即释放问题。

容器引擎和Kubelet共享磁盘空间说明

容器引擎和Kubelet共享磁盘空间即在节点上不再划分容器引擎 (Docker/Containerd) 和Kubelet组件的空间,二者共用磁盘空间。

须知:
  • 容器引擎和Kubelet共享磁盘空间仅v1.21.10-r0、v1.23.8-r0、v1.25.3-r0及以上的集群支持。
  • 容器存储Rootfs为OverlayFS类型时支持共享磁盘空间,Device Mapper类型不支持。
  • 若您在集群中安装了npd插件,请将插件升级至1.18.10版本及以上,否则会产生误报警。
  • 若您在集群中安装了log-agent插件,请将插件升级至1.3.0版本及以上,否则会影响日志采集。
  • 若您在集群中安装了ICAgent,请将ICAgent升级至5.12.140版本及以上,否则会影响日志采集。查看或升级ICAgent版本请参见CCE接入
图5 共享磁盘空间配置

对于共享磁盘空间的节点,容器存储Rootfs为OverlayFS类型。节点创建完成后,数据盘空间(以100G大小为例)不再划分容器引擎和容器镜像空间和Kubelet组件空间,均在/mnt/paas目录下,并通过两个文件系统区分:

  • dockersys:/mnt/paas/runtime
  • kubernetes:/mnt/paas/kubernetes/kubelet
图6 共享数据盘空间分配

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

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容