使用云盘CDS

容器引擎 CCE

  • 功能发布记录
  • 产品描述
    • 介绍
    • 优势
    • 使用限制
    • 应用场景
    • 核心概念
    • 特性
  • 开发指南
    • EFK日志采集系统部署指南
    • 创建LoadBalancer类型的Service
    • Prometheus监控系统部署指南
    • kubectl管理配置
    • 在CCE集群中使用-Network-Policy
  • 常用工具
    • 视图命令行场景示例
  • 产品公告
    • CCE 新版集群管理发布公告
    • CCE 控制台升级公告
    • Kubernetes 版本发布说明
      • CCE发布Kubernetes 1.18版本说明
      • CCE发布Kubernetes 1.30版本说明
      • CCE Kubernetes 版本更新说明
      • CCE发布Kubernetes 1.22版本说明
      • CCE发布Kubernetes 1.20版本说明
      • CCE发布Kubernetes 1.28版本说明
      • CCE发布Kubernetes 1.24版本说明
      • CCE发布Kubernetes 1.26版本说明
    • 安全漏洞修复公告
      • 漏洞CVE-2020-14386修复公告
      • 修复漏洞CVE-2021-30465公告
      • 漏洞CVE-2019-5736修复公告
      • 漏洞CVE-2025-1097、CVE-2025-1098等修复公告
      • 关于 runc 的安全问题(CVE-2024-21626)影响声明
  • 快速入门
    • 快速部署nginx应用
    • 使用CCE容器引擎流程概述
  • 典型实践
    • CCE集群网络说明及规划
    • CCE典型实践之容器网络模式选择
    • Pod异常问题排查
    • 通过 CCE Ingress 实现虚机和容器服务的统一接入
    • CCE集群使用Jenkins持续发布
    • CCE-访问公网实践
    • Linux系统配置常用参数说明
    • 用户使用自定义 CNI 插件方法
    • CCE典型实践之Guestbook搭建
    • 使用KMS对etcd数据加密
    • 添加CGroup V2节点
    • CCE容器运行时选择
    • CCE使用检查清单
    • VPC-ENI模式集群访问公网实践
    • 利用 Velero 实现将应用跨云迁移到 百度CCE
    • 使用 CNI 配置容器内网络参数
    • CCE Resource Recommender 用户文档
    • CCE集群中使用私有镜像实践
    • 云原生AI
      • 使用 CCE AITraining Operator 实现弹性容错训练
      • 部署 TensorFlow Serving 推理服务
      • GPU虚拟化之隔离性最优型的最佳实践
  • 操作指南
    • 多用户访问控制
    • 使用须知
    • 命名空间管理
      • 设置资源配额
      • 设置资源限制
      • 命名空间基本操作
    • 弹性伸缩
      • 使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
      • CCE 集群节点自动伸缩
      • 容器定时水平伸缩(CronHPA)
      • 容器水平伸缩(HPA)
    • 存储管理
      • 使用云盘CDS
      • 使用并行文件存储PFS
      • 使用对象存储BOS
      • 使用并行文件存储PFS L2
      • 使用本地存储
      • 使用数据湖存储加速工具RapidFS
      • 使用文件存储CFS
      • 概述
    • 节点管理
      • 移出节点
      • kubelet容器监控只读端口风险提示
      • 管理污点
      • 设置GPU显存共享
      • 添加节点
      • 自定义Kubelet参数
      • 设置节点封锁
      • 节点排水
      • 管理节点标签
    • 组件管理
      • CCE CSI BOS Plugin 说明
      • Kube Scheduler 说明文档
      • CCE CSI PFS L2 Plugin
      • CCE NodeLocal DNSCache 说明
      • CCE Ingress NGINX Controller 说明
      • CCE RDMA Device Plugin 说明
      • CCE Node Problem Detector 说明
      • CCE Credential Controller 说明
      • Kube Controller Manager 说明
      • CCE Ingress Controller 说明
      • CCE GPU Manager 说明
      • CCE Backup Controller 说明
      • CCE QoS Agent 说明
      • CCE Descheduler 说明
      • 组件概述
      • CCE Image Accelerate 说明
      • CCE Network Plugin说明
      • Kube ApiServer 说明
      • CCE Log Operator 说明
      • CoreDNS 说明
      • CCE NPU Manager 说明
      • CCE AI Job Scheduler 说明
      • CCE LB Controller 说明
      • CCE P2P Accelerator 说明
      • CCE_Hybrid_Manager说明
      • CCE CSI PFS Plugin 说明
      • CCE Deep Learning Frameworks Operator 说明
      • CCE Node Remedier 说明
      • CCE CSI CDS Plugin 说明
      • CCE Ascend Mindx DL说明
      • CCE Calico Felix 说明
      • CCE Virtual Kubelet组件
      • CCE Fluid说明
      • CCE Onepilot 说明
      • CCE CronHPA Controller 说明
      • CCE 动态调度插件说明
    • 云原生AI
      • 云原生AI概述
      • GPU虚拟化
        • MPS 最佳实践&注意事项
        • GPU独占和共享说明
        • GPU在离线混部使用说明
        • GPU虚拟化适配表
        • 单GPU容器共享多卡使用说明
        • 共享GPU场景下的镜像构建注意事项
        • 关闭节点显存共享功能注意事项
      • 队列管理
        • 逻辑队列和物理队列使用说明
        • 修改队列
        • 删除队列
        • 新建队列
      • 任务管理
        • 基于 NCCL的RDMA分布式训练示例
        • 新建AITraining任务
        • 新建PaddlePaddle任务
        • 删除任务
        • 查看任务信息
        • 新建Mxnet任务
        • 新建TensorFlow任务
        • 新建Pytorch任务
      • 数据集管理
        • 删除数据集
        • 操作数据集
        • 查看数据集
        • 新建数据集
      • AI监控大盘
        • 接入监控实例并开启采集任务
        • NVIDIA芯片资源观测
          • AI Job Scheduler组件
          • GPUManager组件
          • GPU资源池总览
          • GPU节点资源
          • GPU工作负载资源
        • 昇腾芯片资源观测
          • 昇腾节点资源
          • 昇腾资源池总览
          • 昇腾工作负载资源
      • AI 加速套件
        • 使用AIAK-Inference 加速推理业务
        • 使用AIAK-Training Pytorch版
        • AIAK 简介
        • 使用 AIAK-Training 部署分布式训练任务
    • Helm管理
      • Helm模板
      • Helm实例
    • 应用管理
      • 部署
      • 保密字典
      • 服务
      • 配置字典
      • 容器组
      • 概述
    • 镜像仓库
      • 使用容器镜像构建服务
      • 镜像仓库基本操作
    • Serverless集群
      • 在Serverless集群中使用Service
      • 产品概述
      • 创建Serverless集群
    • 工作负载
      • 设置工作负载自动水平伸缩
      • Statefulset管理
      • 使用私有镜像创建工作负载
      • Job管理
      • 查看容器组
      • CronJob管理
      • Daemonset管理
      • 免密拉取容器镜像
      • Deployment管理
    • 节点组管理
      • 节点组管理
      • 节点组介绍
      • 升级节点组
      • 添加外部已有节点
      • 自定义节点组 Kubelet 配置
      • 添加备选机型
      • 节点组节点故障检测自愈
      • 配置扩缩容策略
    • 监控日志
      • 使用Prometheus监控集群
      • CCE 事件中心
      • 集群审计仪表盘
      • CCE 集群异常事件报警
      • Java应用监控
      • 集群服务画像
      • 日志管理
      • 集群审计
      • 日志中心
        • 在容器引擎控制台配置采集规则
        • 查看集群控制面日志
        • 日志概述
        • 查看业务日志
        • 使用CRD配置采集规则
    • 网络管理
      • CCE 集群内容器访问集群外服务
      • 容器网段空间耗尽如何继续扩容(VPC-ENI模式)
      • 容器网段空间耗尽如何继续扩容(VPC网络模式)
      • CCE IP Masquerade Agent 用户指南
      • 创建VPC-ENI模式集群
      • 对等连接场景下容器流量转发配置
      • 使用Network Policy网络策略
      • CCE 支持 IPv4 和 IPv6 双栈网络
      • 在CCE集群中使用NetworkPolicy
      • 网络编排
        • 集群 Pod 子网拓扑分布(容器网络 v2)
        • 容器网络 QoS 管理
        • VPC-ENI指定子网分配IP(容器网络 v2)
      • 网络连通性
        • 容器网络通过 NAT 网关访问公网
      • 网络维护
        • CCE容器网络常见错误码对应表
      • DNS
        • DNS 原理概述
        • DNS 问题排查指南
        • CoreDNS 组件手动升级指南
    • 虚拟节点
      • 管理虚拟节点
      • 配置BCIPod
      • 配置bci-profile
    • 备份中心
      • 备份概述
      • 恢复管理
      • 备份仓库
      • 备份管理
    • 巡检与诊断
      • GPU运行环境检查
      • 集群巡检
      • 故障诊断
    • 流量接入
      • NGINX Ingress 使用配置参考
      • CCE基于nginx-ingress实现灰度发布
      • BLB Ingress Annotation说明
      • 通过CCE使用K8S_Ingress
      • 通过YAML创建LoadBalancer_Service
      • 通过CCE使用K8S_Service
      • LoadBalancer Service Annotation说明
      • 使用直连 Pod 模式 LoadBalancer Service
      • Service复用已有负载均衡BLB
      • 通过YAML创建CCE_Ingress
      • 使用 NGINX Ingress
    • 权限管理
      • 配置集群OIDC认证
      • 配置IAM标签权限策略
      • 配置IAM自定义权限策略
      • 配置IAM预置权限策略
      • 权限概述
      • 配置预置RBAC权限策略
    • 配置管理
      • Secret管理
      • Configmap管理
    • 集群管理
      • 集群快照
      • CCE 安全组
      • 查看集群
      • 创建集群
      • 操作集群
      • 升级集群Kubernetes版本
      • 通过kubectl连接集群
      • 托管集群使用说明
      • CCE 支持 GPUSharing 集群
      • CCE节点资源预留说明
      • CCE 节点 CDS 扩容
  • 服务等级协议SLA
    • CCE服务等级协议SLA(V1.0)
  • Solution-Fabric
    • Fabric解决方案
  • API参考
    • 通用说明
    • 公共头和错误返回
    • 概述
  • 常见问题
    • windows下使用kubectl
    • 自动扩缩容常见问题
    • 通过kubectl创建简单的服务
    • 业务应用如何使用负载均衡?
    • 常见问题总览
    • 集群管理常见问题
  • API_V2参考
    • 通用说明
    • Instance相关接口
    • 附录
    • Autoscaler相关接口
    • 组件管理相关接口
    • 套餐适配相关接口
    • Task相关接口
    • 公共头和错误返回
    • Network相关接口
    • 服务域名
    • Cluster相关接口
    • Kubeconfig相关接口
    • InstanceGroup相关接口
    • RBAC相关接口
    • 概述
  • 产品定价
    • 产品定价
  • Solution-Xchain
    • 超级链解决方案
  • SDK
    • Go-SDK
      • 节点组管理
      • 节点管理
      • 集群管理
      • 初始化
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

容器引擎 CCE

  • 功能发布记录
  • 产品描述
    • 介绍
    • 优势
    • 使用限制
    • 应用场景
    • 核心概念
    • 特性
  • 开发指南
    • EFK日志采集系统部署指南
    • 创建LoadBalancer类型的Service
    • Prometheus监控系统部署指南
    • kubectl管理配置
    • 在CCE集群中使用-Network-Policy
  • 常用工具
    • 视图命令行场景示例
  • 产品公告
    • CCE 新版集群管理发布公告
    • CCE 控制台升级公告
    • Kubernetes 版本发布说明
      • CCE发布Kubernetes 1.18版本说明
      • CCE发布Kubernetes 1.30版本说明
      • CCE Kubernetes 版本更新说明
      • CCE发布Kubernetes 1.22版本说明
      • CCE发布Kubernetes 1.20版本说明
      • CCE发布Kubernetes 1.28版本说明
      • CCE发布Kubernetes 1.24版本说明
      • CCE发布Kubernetes 1.26版本说明
    • 安全漏洞修复公告
      • 漏洞CVE-2020-14386修复公告
      • 修复漏洞CVE-2021-30465公告
      • 漏洞CVE-2019-5736修复公告
      • 漏洞CVE-2025-1097、CVE-2025-1098等修复公告
      • 关于 runc 的安全问题(CVE-2024-21626)影响声明
  • 快速入门
    • 快速部署nginx应用
    • 使用CCE容器引擎流程概述
  • 典型实践
    • CCE集群网络说明及规划
    • CCE典型实践之容器网络模式选择
    • Pod异常问题排查
    • 通过 CCE Ingress 实现虚机和容器服务的统一接入
    • CCE集群使用Jenkins持续发布
    • CCE-访问公网实践
    • Linux系统配置常用参数说明
    • 用户使用自定义 CNI 插件方法
    • CCE典型实践之Guestbook搭建
    • 使用KMS对etcd数据加密
    • 添加CGroup V2节点
    • CCE容器运行时选择
    • CCE使用检查清单
    • VPC-ENI模式集群访问公网实践
    • 利用 Velero 实现将应用跨云迁移到 百度CCE
    • 使用 CNI 配置容器内网络参数
    • CCE Resource Recommender 用户文档
    • CCE集群中使用私有镜像实践
    • 云原生AI
      • 使用 CCE AITraining Operator 实现弹性容错训练
      • 部署 TensorFlow Serving 推理服务
      • GPU虚拟化之隔离性最优型的最佳实践
  • 操作指南
    • 多用户访问控制
    • 使用须知
    • 命名空间管理
      • 设置资源配额
      • 设置资源限制
      • 命名空间基本操作
    • 弹性伸缩
      • 使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
      • CCE 集群节点自动伸缩
      • 容器定时水平伸缩(CronHPA)
      • 容器水平伸缩(HPA)
    • 存储管理
      • 使用云盘CDS
      • 使用并行文件存储PFS
      • 使用对象存储BOS
      • 使用并行文件存储PFS L2
      • 使用本地存储
      • 使用数据湖存储加速工具RapidFS
      • 使用文件存储CFS
      • 概述
    • 节点管理
      • 移出节点
      • kubelet容器监控只读端口风险提示
      • 管理污点
      • 设置GPU显存共享
      • 添加节点
      • 自定义Kubelet参数
      • 设置节点封锁
      • 节点排水
      • 管理节点标签
    • 组件管理
      • CCE CSI BOS Plugin 说明
      • Kube Scheduler 说明文档
      • CCE CSI PFS L2 Plugin
      • CCE NodeLocal DNSCache 说明
      • CCE Ingress NGINX Controller 说明
      • CCE RDMA Device Plugin 说明
      • CCE Node Problem Detector 说明
      • CCE Credential Controller 说明
      • Kube Controller Manager 说明
      • CCE Ingress Controller 说明
      • CCE GPU Manager 说明
      • CCE Backup Controller 说明
      • CCE QoS Agent 说明
      • CCE Descheduler 说明
      • 组件概述
      • CCE Image Accelerate 说明
      • CCE Network Plugin说明
      • Kube ApiServer 说明
      • CCE Log Operator 说明
      • CoreDNS 说明
      • CCE NPU Manager 说明
      • CCE AI Job Scheduler 说明
      • CCE LB Controller 说明
      • CCE P2P Accelerator 说明
      • CCE_Hybrid_Manager说明
      • CCE CSI PFS Plugin 说明
      • CCE Deep Learning Frameworks Operator 说明
      • CCE Node Remedier 说明
      • CCE CSI CDS Plugin 说明
      • CCE Ascend Mindx DL说明
      • CCE Calico Felix 说明
      • CCE Virtual Kubelet组件
      • CCE Fluid说明
      • CCE Onepilot 说明
      • CCE CronHPA Controller 说明
      • CCE 动态调度插件说明
    • 云原生AI
      • 云原生AI概述
      • GPU虚拟化
        • MPS 最佳实践&注意事项
        • GPU独占和共享说明
        • GPU在离线混部使用说明
        • GPU虚拟化适配表
        • 单GPU容器共享多卡使用说明
        • 共享GPU场景下的镜像构建注意事项
        • 关闭节点显存共享功能注意事项
      • 队列管理
        • 逻辑队列和物理队列使用说明
        • 修改队列
        • 删除队列
        • 新建队列
      • 任务管理
        • 基于 NCCL的RDMA分布式训练示例
        • 新建AITraining任务
        • 新建PaddlePaddle任务
        • 删除任务
        • 查看任务信息
        • 新建Mxnet任务
        • 新建TensorFlow任务
        • 新建Pytorch任务
      • 数据集管理
        • 删除数据集
        • 操作数据集
        • 查看数据集
        • 新建数据集
      • AI监控大盘
        • 接入监控实例并开启采集任务
        • NVIDIA芯片资源观测
          • AI Job Scheduler组件
          • GPUManager组件
          • GPU资源池总览
          • GPU节点资源
          • GPU工作负载资源
        • 昇腾芯片资源观测
          • 昇腾节点资源
          • 昇腾资源池总览
          • 昇腾工作负载资源
      • AI 加速套件
        • 使用AIAK-Inference 加速推理业务
        • 使用AIAK-Training Pytorch版
        • AIAK 简介
        • 使用 AIAK-Training 部署分布式训练任务
    • Helm管理
      • Helm模板
      • Helm实例
    • 应用管理
      • 部署
      • 保密字典
      • 服务
      • 配置字典
      • 容器组
      • 概述
    • 镜像仓库
      • 使用容器镜像构建服务
      • 镜像仓库基本操作
    • Serverless集群
      • 在Serverless集群中使用Service
      • 产品概述
      • 创建Serverless集群
    • 工作负载
      • 设置工作负载自动水平伸缩
      • Statefulset管理
      • 使用私有镜像创建工作负载
      • Job管理
      • 查看容器组
      • CronJob管理
      • Daemonset管理
      • 免密拉取容器镜像
      • Deployment管理
    • 节点组管理
      • 节点组管理
      • 节点组介绍
      • 升级节点组
      • 添加外部已有节点
      • 自定义节点组 Kubelet 配置
      • 添加备选机型
      • 节点组节点故障检测自愈
      • 配置扩缩容策略
    • 监控日志
      • 使用Prometheus监控集群
      • CCE 事件中心
      • 集群审计仪表盘
      • CCE 集群异常事件报警
      • Java应用监控
      • 集群服务画像
      • 日志管理
      • 集群审计
      • 日志中心
        • 在容器引擎控制台配置采集规则
        • 查看集群控制面日志
        • 日志概述
        • 查看业务日志
        • 使用CRD配置采集规则
    • 网络管理
      • CCE 集群内容器访问集群外服务
      • 容器网段空间耗尽如何继续扩容(VPC-ENI模式)
      • 容器网段空间耗尽如何继续扩容(VPC网络模式)
      • CCE IP Masquerade Agent 用户指南
      • 创建VPC-ENI模式集群
      • 对等连接场景下容器流量转发配置
      • 使用Network Policy网络策略
      • CCE 支持 IPv4 和 IPv6 双栈网络
      • 在CCE集群中使用NetworkPolicy
      • 网络编排
        • 集群 Pod 子网拓扑分布(容器网络 v2)
        • 容器网络 QoS 管理
        • VPC-ENI指定子网分配IP(容器网络 v2)
      • 网络连通性
        • 容器网络通过 NAT 网关访问公网
      • 网络维护
        • CCE容器网络常见错误码对应表
      • DNS
        • DNS 原理概述
        • DNS 问题排查指南
        • CoreDNS 组件手动升级指南
    • 虚拟节点
      • 管理虚拟节点
      • 配置BCIPod
      • 配置bci-profile
    • 备份中心
      • 备份概述
      • 恢复管理
      • 备份仓库
      • 备份管理
    • 巡检与诊断
      • GPU运行环境检查
      • 集群巡检
      • 故障诊断
    • 流量接入
      • NGINX Ingress 使用配置参考
      • CCE基于nginx-ingress实现灰度发布
      • BLB Ingress Annotation说明
      • 通过CCE使用K8S_Ingress
      • 通过YAML创建LoadBalancer_Service
      • 通过CCE使用K8S_Service
      • LoadBalancer Service Annotation说明
      • 使用直连 Pod 模式 LoadBalancer Service
      • Service复用已有负载均衡BLB
      • 通过YAML创建CCE_Ingress
      • 使用 NGINX Ingress
    • 权限管理
      • 配置集群OIDC认证
      • 配置IAM标签权限策略
      • 配置IAM自定义权限策略
      • 配置IAM预置权限策略
      • 权限概述
      • 配置预置RBAC权限策略
    • 配置管理
      • Secret管理
      • Configmap管理
    • 集群管理
      • 集群快照
      • CCE 安全组
      • 查看集群
      • 创建集群
      • 操作集群
      • 升级集群Kubernetes版本
      • 通过kubectl连接集群
      • 托管集群使用说明
      • CCE 支持 GPUSharing 集群
      • CCE节点资源预留说明
      • CCE 节点 CDS 扩容
  • 服务等级协议SLA
    • CCE服务等级协议SLA(V1.0)
  • Solution-Fabric
    • Fabric解决方案
  • API参考
    • 通用说明
    • 公共头和错误返回
    • 概述
  • 常见问题
    • windows下使用kubectl
    • 自动扩缩容常见问题
    • 通过kubectl创建简单的服务
    • 业务应用如何使用负载均衡?
    • 常见问题总览
    • 集群管理常见问题
  • API_V2参考
    • 通用说明
    • Instance相关接口
    • 附录
    • Autoscaler相关接口
    • 组件管理相关接口
    • 套餐适配相关接口
    • Task相关接口
    • 公共头和错误返回
    • Network相关接口
    • 服务域名
    • Cluster相关接口
    • Kubeconfig相关接口
    • InstanceGroup相关接口
    • RBAC相关接口
    • 概述
  • 产品定价
    • 产品定价
  • Solution-Xchain
    • 超级链解决方案
  • SDK
    • Go-SDK
      • 节点组管理
      • 节点管理
      • 集群管理
      • 初始化
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 容器引擎CCE
  • arrow
  • 操作指南
  • arrow
  • 存储管理
  • arrow
  • 使用云盘CDS
本页目录
  • 概述
  • 使用限制
  • 前提条件
  • 操作步骤
  • 动态挂载块存储
  • 方式一:通过 kubectl 命令行操作
  • 1. 创建存储类 StorageClass
  • 2. 创建持久卷声明 PVC
  • 3. 检查 PVC 状态为 Bound
  • 4. 在 Pod 中挂载 PVC
  • 方式二:通过控制台操作
  • 静态挂载块存储
  • 方式一:通过 kubectl 命令行操作
  • 1. 创建持久卷 PV
  • 2. 创建持久卷声明 PVC
  • 3. 检查 PVC 状态为 Bound,并且与对应的 PV 绑定
  • 4. 在 Pod 中挂载 PVC
  • 方式二:通过控制台操作
  • 应用场景
  • 在 StatefuleSet 里通过 claimTemple 批量使用 PVC
  • 多可用区集群挂载 CDS
  • 方式一:设置 StorageClass 的 Volume Binding Mode
  • 方式二:通过 StorageClass 的 allowedTopologies 字段强制指定 zone
  • 扩容 CDS PV

使用云盘CDS

更新时间:2025-08-21

概述

容器引擎 CCE 支持通过创建 PV/PVC,并为工作负载挂载数据卷方式使用百度智能云磁盘CDS。本文将介绍如何在集群中动态和静态挂载云磁盘。

使用限制

  • 集群 Kubernetes 版本需大于或等于 1.16。
  • 挂载 CDS 的 Pod 只能在支持挂载云磁盘的节点上启动。
  • 每个节点挂载的 CDS 数量由 CCE CSI CDS Plugin 组件配置参数及云服务器自身同时决定,更多信息请见创建服务器实例。
  • 当前云盘只支持按量付费的方式进行挂载,不支持包年包月的付费方式创建。

前提条件

  • 集群已安装块存储组件,更多信息请见 CCE CSI CDS Plugin 说明。

操作步骤

通过 PV/PVC 方式使用 CDS,具体分为两种方式:

方式 说明 注意事项
静态挂载 需要用户提前在百度智能云中创建好 CDS(操作方法参考 CDS 文档),然后通过 CDS 的 volume id 在集群中创建 PV 和 PVC 资源。
  1. 用户提供的 CDS 磁盘未被分区且处于未挂载状态。
  2. 确保填入正确的磁盘 ID。
动态挂载 用户在集群中声明 PVC 时,自动创建出按量付费 CDS 磁盘并且动态关联至 PV。
  1. 动态挂载时将会自动创建按量付费 CDS 磁盘并且计费,详情参见计费说明。
  2. 动态创建的 CDS 将会随着用户删除 PVC 时被联动删除(需要将对应 storageClass 的 reclaimPolicy 参数设置为 delete)。
  3. 如果用户在没有删除 PVC 的情况下直接删除了 CCE 集群,则需要手动对这些 CDS 进行处理。

动态挂载块存储

方式一:通过 kubectl 命令行操作

1. 创建存储类 StorageClass
  • 集群管理员可使用 StorageClass 为集群定义不同的存储类型。您可通过 StorageClass 配合 PVC 动态创建需要的存储资源。
  • 本文介绍通过 Kubectl 方式创建云盘 CDS 类型的 StorageClass,自定义块存储使用所需的模板。
YAML
1apiVersion: storage.k8s.io/v1
2kind: StorageClass
3metadata:
4  name: hp1                   #StorageClass名称
5provisioner: csi-cdsplugin
6allowVolumeExpansion: true
7volumeBindingMode: WaitForFirstConsumer
8parameters:
9  paymentTiming: "Postpaid"   #付费方式,Postpaid 表示按量付费,当前只支持按量付费
10  storageType: "hp1"          #磁盘类型,支持cloud_hp1, hp1, hdd
11  recycle: "on"               #云磁盘的删除回收策略,支持 on、off(on 表示删除时将云磁盘放入回收站,off 表示删除时云磁盘不放入回收站),仅当 reclaimPolicy 为 Delete 生效,默认值为 on
12reclaimPolicy: Delete         #云磁盘的删除策略,支持 Delete、Retain(Delete 表示删除 PVC 时,PV 和 云磁盘会一起删除,删除云磁盘默认放入回收站;Retain 表示删除 PVC 时,PV和云磁盘不会被删除,需要您手动删除),默认为 Delete

说明:

  • storageType 用于设置动态创建的 CDS 盘的类型,支持:cloud_hp1 (通用型 SSD)、hp1 (高性能云磁盘)、hdd(通用型 HDD),更多信息参见 创建CDS云盘。
  • 如果集群中存在使用动态方式挂载 CDS 的 Pod,且对应 StorageClass 中 reclaimPolicy 设置为 Delete,这部分 CDS 在集群删除集群时默认会保留,如果需要一同删除请在删除集群前手动停止相关 Pod 并删除对应 PVC。
2. 创建持久卷声明 PVC

注意 storageClassName 需要指定为上述部署 storageClass 时填写的 storageClass 名称。

YAML
1kind: PersistentVolumeClaim
2apiVersion: v1
3metadata:
4  name: csi-pvc-cds
5spec:
6  accessModes:
7    - ReadWriteOnce
8  storageClassName: hp1
9  resources:
10    requests:
11      storage: 5Gi    # 指定PVC存储空间大小

说明: 不同的磁盘类型,存储大小不同,如 hp1 : 5~32765GB,cloud_hp1 : 50~32765GB,hdd : 5~32765GB

3. 检查 PVC 状态为 Bound
Kubectl
1$ kubectl get pvc csi-pvc-cds
2NAME              STATUS    VOLUME                 CAPACITY   ACCESS MODES   STORAGECLASS   AGE
3csi-pvc-cds       Bound     pvc-1ab36e4d1d2711e9   50Gi       RWX            hp1         4s

说明:

如果指定了 volumeBindingMode 为 WaitForFirstConsumer,则 PVC 此时处于 Pending 状态,会等待第一个挂载该 PVC 的 Pod 被创建后才进入 PV 创建和绑定流程。

4. 在 Pod 中挂载 PVC

Pod 和 PVC 需要在同一个 namespace 下。

YAML
1apiVersion: v1
2kind: Pod
3metadata:
4  name: test-pvc-pod
5  labels:
6    app: test-pvc-pod
7spec:
8  containers:
9  - name: test-pvc-pod
10    image: nginx
11    volumeMounts:
12      - name: cds-pvc
13        mountPath: "/cds-volume"
14  volumes:
15    - name: cds-pvc
16      persistentVolumeClaim:
17        claimName: csi-pvc-cds

Pod 创建后,可以读写容器内的 /cds-volume 路径来访问相应的 cds 存储上的内容。

方式二:通过控制台操作

  1. 登陆 CCE 控制台,点击集群名称进入集群详情页。
  2. 创建存储类 StorageClass。

a. 在左侧导航栏中选择存储配置 > 存储类,进入存储类列表页面。

b. 在存储类列表上方点击新建存储类。在文件模版中自定义相关配置。storageType 用于设置动态创建的 CDS 盘的类型,支持:cloud_hp1 (通用型 SSD)、hp1 (高性能云磁盘)、hdd(通用型 HDD)。

b. 点击确定,将为您创建存储类。

  1. 创建持久卷声明 PVC。

a. 在左侧导航栏选择存储配置 > 持久卷声明,进入持久卷声明列表。

b. 点击持久卷声明列表上方新建持久卷声明按钮,选择表单创建或 Yaml 创建。

c. 若选择表单创建则需填写相关参数,其中三种访问模式详情参见存储管理概述,点击确定后在确认配置弹窗中输入 storageClassName 的值,即存储类的名称。确认配置无误后点击确定。

d. 创建 PVC 后,在持久卷声明列表 > 持久卷列可以看见相应的 PV 自动创建,PVC 状态列显示为 Bound,即 PVC 已经与新创建的 PV 绑定。

  1. 创建应用并挂载 PVC,在 Pod spec 内指定相应的 PVC 名称,且 Pod 和 PVC 需要在同一个 namespace 下。Pod 创建后,可以读写容器内的 /cds-volume 路径来访问相应的 CDS 存储上的内容。

静态挂载块存储

方式一:通过 kubectl 命令行操作

1. 创建持久卷 PV
YAML
1apiVersion: v1
2kind: PersistentVolume
3metadata:
4 name: pv-cds
5 namespace: "default"
6spec:
7 accessModes:
8 - ReadWriteOnce
9 capacity:
10   storage: 5Gi
11 csi:
12   driver: "csi-cdsplugin"
13   volumeHandle: "v-xxxx"    # 指定挂载的磁盘,格式为磁盘ID
14   fsType: "ext4"
15 nodeAffinity:
16   required:
17     nodeSelectorTerms:
18     - matchExpressions:
19       - key: failure-domain.beta.kubernetes.io/zone
20         operator: In
21         values:
22         - zoneA
23 persistentVolumeReclaimPolicy: Retain

说明:

  • fsType 不填写时默认值为 ext4。Filesystem 模式下,若 fsType 与 cds 中实际文件系统类型不匹配,将导致挂载失败;若 cds 中尚无文件系统,则挂载时自动格式化 cds 为 fsType 指定的文件系统。
  • nodeAffinity 中需要指定 cds 所在可用区,保证挂载该 cds 的 pod 只会被调度到与 cds 磁盘同可用区的 node 上。
2. 创建持久卷声明 PVC
YAML
1apiVersion: v1
2kind: PersistentVolumeClaim
3metadata:
4 name: csi-cds-pvc
5spec:
6 accessModes:
7 - ReadWriteOnce
8 resources:
9   requests:
10     storage: 5Gi
3. 检查 PVC 状态为 Bound,并且与对应的 PV 绑定
Kubectl
1$ kubectl get pv
2NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                  STORAGECLASS   REASON    AGE
3pv-cds    5Gi        RWO            Retain           Bound     default/csi-cds-pvc                             4s
4$ kubectl get pvc
5NAME           STATUS    VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
6csi-cds-pvc    Bound     pv-cds    5Gi        RWO                           36s
4. 在 Pod 中挂载 PVC
YAML
1apiVersion: apps/v1
2kind: Deployment
3metadata:
4 name: web-server-deployment
5 labels:
6   test: ws
7spec:
8 replicas: 1
9 selector:
10   matchLabels:
11     se: ws
12 template:
13   metadata:
14     labels:
15       se: ws
16     name: web-server
17   spec:
18     containers:
19      - name: web-server
20        image: nginx
21        volumeMounts:
22          - mountPath: /var/lib/www/html
23            name: csi-cds-pvc
24     volumes:
25      - name: csi-cds-pvc
26        persistentVolumeClaim:
27          claimName: csi-cds-pvc

Pod 创建后,可以读写容器内的 /var/lib/www/html 路径来访问相应的 CDS 存储上的内容。

由于创建 PV 和 PVC 时只支持 accessModes 为 ReadWriteOnce,该 PVC 可以被同一节点上所有 Pod 挂载读写。

方式二:通过控制台操作

  1. 登陆 CCE 控制台,单击集群名称进入集群详情页。
  2. 创建持久卷 PV。

a. 在左侧导航栏选择存储配置 > 持久卷,进入持久卷列表。

b. 点击持久卷列表上方新建持久卷按钮,选择表单创建或 Yaml 创建。

c. 若选择表单创建则需填写相关参数,根据需求设置存储容量,存储类型选择云盘 CDS,并输入云盘 ID。点击确定在二次弹窗中确认配置后点击确定创建 PV。云盘 ID 可前往 CDS 控制台 查看。

  1. 创建可以和持久卷 PV 绑定的持久卷声明 PVC。

a. 在左侧导航栏选择存储配置 > 持久卷声明,进入持久卷声明列表。

b. 点击持久卷列表上方新建持久卷声明按钮,选择表单创建或 Yaml 创建。

c. 根据之前创建的 PV 配置 PVC 的存储容量、访问模式、存储类(可选),点击确定创建 PVC。会查找现有的 PV 资源,寻找与 PVC 请求相匹配的 PV。

d. 绑定后,可以分别在持久卷列表和持久卷声明列表中看见 PV 和 PVC 的状态列变为 Bound。

  1. 创建应用并挂载 PVC,在 Pod spec 内指定相应的 PVC 名称即可。

应用场景

在 StatefuleSet 里通过 claimTemple 批量使用 PVC

  1. 创建 2 副本 StatefuleSet 并指定 volumeClaimTemplates,需要提前创建好相应 StorageClass:
YAML
1apiVersion: apps/v1
2kind: StatefulSet
3metadata:
4 name: web
5spec:
6 serviceName: "nginx"
7 replicas: 2
8 selector:
9   matchLabels:
10     app: nginx
11 template:
12   metadata:
13     labels:
14       app: nginx
15   spec:
16     containers:
17     - name: nginx
18       image: nginx
19       ports:
20       - containerPort: 80
21         name: web
22       volumeMounts:
23       - name: www
24         mountPath: /usr/share/nginx/html
25 volumeClaimTemplates:
26 - metadata:
27     name: www
28   spec:
29     accessModes: [ "ReadWriteOnce" ]
30     resources:
31       requests:
32         storage: 5Gi
33     storageClassName: hp1
  1. 查看 Pod 以及自动创建的 PVC。
Kubectl
1$ kubectl get pod
2NAME         READY     STATUS              RESTARTS   AGE
3web-0        1/1       Running             0          3m
4web-1        1/1       Running             0          2m
Kubectl
1$ kubectl get pvc
2NAME           STATUS    VOLUME                 CAPACITY   ACCESS MODES   STORAGECLASS   AGE
3www-web-0      Bound     pvc-a1e885701d2f11e9   5Gi        RWO            hp1            6m
4www-web-1      Bound     pvc-c91edb891d2f11e9   5Gi        RWO            hp1            5m

多可用区集群挂载 CDS

目前 CDS 不支持跨可用区,如果 CCE 集群中有多个可用区的机器,动态挂载的方式可以通过设置 StorageClass 的 Volume Binding Mode 为 WaitForFirstConsumer 来自动根据 Pod 被调度节点所处的可用区创建 CDS 磁盘,或者通过设置 StorageClass 中 allowedTopologies 字段或 Pod 的节点亲和属性来指定可用区;使用已有 CDS 时,须指定 PV 的 nodeAffinity 参数实现可用区亲和性。

CCE 集群默认会为集群节点打上可用区标签:

Kubectl
1$ kubectl get nodes --show-labels
2NAME            STATUS    ROLES     AGE       VERSION   LABELS
3192.168.80.15   Ready     <none>    13d       v1.8.12   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=BCC,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/region=bj,failure-domain.beta.kubernetes.io/zone=zoneC,kubernetes.io/hostname=192.168.80.15

其中 failure-domain.beta.kubernetes.io/zone=zoneC 标签说明该集群节点处于 C 可用区。

方式一:设置 StorageClass 的 Volume Binding Mode

通过指定 volumeBindingMode 为 WaitForFirstConsumer 来解决此问题。指定绑定模式为 WaitForFirstConsumer 时,先进行 Pod 的调度,随后根据调度结果对应的可用区创建 CDS。

使用示例

  1. 创建 StorageClass 指定 volumeBindingMode 为 WaitForFirstConsumer。
YAML
1apiVersion: storage.k8s.io/v1
2kind: StorageClass
3metadata:
4  name: csi-cds
5provisioner: csi-cdsplugin
6allowVolumeExpansion: true
7volumeBindingMode: WaitForFirstConsumer
8parameters:
9  paymentTiming: "Postpaid"
10  storageType: "hp1"
11reclaimPolicy: Delete
  1. 在 StatefulSet 中通过 claimTemple 使用 PVC:
YAML
1apiVersion: apps/v1
2kind: StatefulSet
3metadata:
4  name: web
5spec:
6  serviceName: "nginx"
7  replicas: 1
8  selector:
9    matchLabels:
10      app: nginx
11  template:
12    metadata:
13      labels:
14        app: nginx
15    spec:
16      containers:
17      - name: nginx
18        image: nginx
19        ports:
20        - containerPort: 80
21          name: web
22        volumeMounts:
23        - name: www
24          mountPath: /usr/share/nginx/html
25  volumeClaimTemplates:
26  - metadata:
27      name: www
28    spec:
29      accessModes: [ "ReadWriteOnce" ]
30      resources:
31        requests:
32          storage: 5Gi
33      storageClassName: csi-cds

方式二:通过 StorageClass 的 allowedTopologies 字段强制指定 zone

  1. 创建 StorageClass 并配置 allowedTopologies 为 参数。
YAML
1apiVersion: storage.k8s.io/v1
2kind: StorageClass
3metadata:
4  name: hp1-zonec
5provisioner: csi-cdsplugin
6parameters:
7  paymentTiming: "Postpaid"
8  storageType: "hp1"
9reclaimPolicy: Delete
10volumeBindingMode: WaitForFirstConsumer
11allowedTopologies:
12- matchLabelExpressions:
13  - key: failure-domain.beta.kubernetes.io/zone
14    values:
15    - zoneC
  1. 在 StatefulSet 中通过 claimTemple 使用 PVC:
YAML
1apiVersion: apps/v1
2kind: StatefulSet
3metadata:
4  name: sts-multi-zone
5spec:
6  serviceName: "nginx"
7  replicas: 1
8  selector:
9    matchLabels:
10      app: nginx
11  template:
12    metadata:
13      labels:
14        app: nginx
15    spec:
16      containers:
17      - name: nginx
18        image: nginx
19        ports:
20        - containerPort: 80
21          name: web
22        volumeMounts:
23        - name: www
24          mountPath: /usr/share/nginx/html
25  volumeClaimTemplates:
26  - metadata:
27      name: www
28    spec:
29      accessModes: [ "ReadWriteOnce" ]
30      resources:
31        requests:
32          storage: 40Gi
33      storageClassName: hp1-zonec

扩容 CDS PV

扩容 CDS PV 需要集群 Kubernetes 版本为 1.16 及以上,同时只针对动态创建的 CDS PV 生效。

  1. 创建 storageClass 并添加 allowVolumeExpansion: true 配置
YAML
1apiVersion: storage.k8s.io/v1
2kind: StorageClass
3metadata:
4  name: hp1
5allowVolumeExpansion: true    #允许磁盘扩容
6...
  1. 修改与 PV 绑定的 PVC 中 spec.resources.requests 中的磁盘容量为目标容量,触发扩容
YAML
1kind: PersistentVolumeClaim
2apiVersion: v1
3metadata:
4  name: csi-pvc-cds
5spec:
6  accessModes:
7    - ReadWriteOnce
8  storageClassName: hp1
9  resources:
10    requests:
11      storage: 8Gi #修改为目标磁盘大小
  1. 默认情况下 CDS CSI 插件仅支持离线扩容,即需要在 PVC 未被 Pod 挂载时才会执行实际扩容动作。完成 PVC 容量 request 修改后,如果此时该 PVC 未被任何 Pod 挂载,则会触发 CDS 磁盘扩容操作,否则会等待挂载该 PVC 的 Pod 停止后才开始扩容。具体扩容进度可以通过 kubectl describe pvc <pvcName> 查看对应的 Events 了解。

    image.png

说明:

  • 如果需要在 PVC 被 Pod 挂载状态下进行在线扩容,可以通过 kubectl -n kube-system edit deployment csi-cdsplugin-controller-server,给 csi-cdsplugin 容器的添加启动参数--enable-online-expansion`,来启用在线扩容功能。
  • 但需要特别注意的是,高负载情况下在线扩容可能会出现IO性能下降或导致IO错误,建议选择低负载时操作并提前创建快照备份。

上一篇
弹性伸缩
下一篇
使用并行文件存储PFS