挂载BOS数据卷

容器实例 BCI

  • 产品定价
  • 功能发布记录
  • 操作指南(旧)
    • 创建容器组
  • 产品描述
    • 产品特性
    • 使用限制
    • 核心概念
    • 什么是BCI?
  • BCI服务等级协议SLA
    • BCI服务等级协议SLA
  • API参考
    • 通用说明
    • 附录
    • 服务域名
    • 公共请求头与响应头
    • 错误码
    • 概述
    • 实例相关接口
      • 批量删除实例
      • 查询实例列表
      • 创建实例
      • 删除实例
      • 查询实例详情
    • 镜像缓存相关接口
      • 创建镜像缓存
      • 查询镜像缓存列表
      • 批量删除镜像缓存
  • 操作指南
    • 通过BCI控制台和API使用BCI
      • 多用户访问控制
      • 运维
        • 使用coredump分析实例程序异常
      • 网络
        • 连接公网
      • 监控
        • 查看实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
          • 管理镜像缓存
          • 镜像缓存概述
      • 存储
        • 挂载CFS数据卷
        • 挂载EmptyDir数据卷
        • 挂载ConfigMap数据卷
      • 容器配置
        • 设置容器启动命令和参数
      • 通过控制台使用BCI
        • 连接BCI实例
        • 删除BCI实例
        • 创建BCI实例
        • 查看BCI实例的详情和事件
      • BCI Pod
        • BCI Pod生命周期
        • BCI Pod概述
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过CCE使用BCI
      • 运维
        • 使用coredump分析实例程序异常
        • 常见问题
      • 网络
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 通过Service访问BCI服务
        • 配置BCI Pod访问集群内Service
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
      • 存储
        • 挂载容器标准输出日志
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载BOS数据卷
        • 挂载PFS并行文件存储
      • 对接BCI
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义Condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 日志
        • BLS日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 配置bci-profile
        • 多可用区创建实例
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过自建集群使用BCI
      • 运维
        • 使用coredump分析实例程序异常
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 存储管理
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载PFS并行文件存储
      • 镜像管理
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 使用镜像缓存
          • 查询镜像缓存
          • 镜像缓存概述
      • 对接BCI
        • 自建Kubernetes集群对接VNode
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 网络管理
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 配置BCI Pod访问集群内Service
      • 预留实例券
        • 购买预留实例券
        • 预留实例券与实例的匹配
        • 查看预留实例券使用明细
        • 查看可抵扣的实例
        • 预留实例券概述
      • 日志
        • 采集日志到百度云BLS
        • bls日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 多可用区创建实例
  • SDK
    • Java-SDK
      • 异常处理
      • 版本变更记录
      • 初始化
      • 安装SDK工具包
      • 概述
      • 实例相关
        • 批量删除实例
        • 查询实例列表
        • 创建实例
        • 删除实例
        • 查询实例详情
    • Go-SDK
      • 异常处理
      • BCI实例
      • 初始化
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

容器实例 BCI

  • 产品定价
  • 功能发布记录
  • 操作指南(旧)
    • 创建容器组
  • 产品描述
    • 产品特性
    • 使用限制
    • 核心概念
    • 什么是BCI?
  • BCI服务等级协议SLA
    • BCI服务等级协议SLA
  • API参考
    • 通用说明
    • 附录
    • 服务域名
    • 公共请求头与响应头
    • 错误码
    • 概述
    • 实例相关接口
      • 批量删除实例
      • 查询实例列表
      • 创建实例
      • 删除实例
      • 查询实例详情
    • 镜像缓存相关接口
      • 创建镜像缓存
      • 查询镜像缓存列表
      • 批量删除镜像缓存
  • 操作指南
    • 通过BCI控制台和API使用BCI
      • 多用户访问控制
      • 运维
        • 使用coredump分析实例程序异常
      • 网络
        • 连接公网
      • 监控
        • 查看实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
          • 管理镜像缓存
          • 镜像缓存概述
      • 存储
        • 挂载CFS数据卷
        • 挂载EmptyDir数据卷
        • 挂载ConfigMap数据卷
      • 容器配置
        • 设置容器启动命令和参数
      • 通过控制台使用BCI
        • 连接BCI实例
        • 删除BCI实例
        • 创建BCI实例
        • 查看BCI实例的详情和事件
      • BCI Pod
        • BCI Pod生命周期
        • BCI Pod概述
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过CCE使用BCI
      • 运维
        • 使用coredump分析实例程序异常
        • 常见问题
      • 网络
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 通过Service访问BCI服务
        • 配置BCI Pod访问集群内Service
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 镜像
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 镜像缓存
      • 存储
        • 挂载容器标准输出日志
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载BOS数据卷
        • 挂载PFS并行文件存储
      • 对接BCI
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义Condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 日志
        • BLS日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 配置bci-profile
        • 多可用区创建实例
      • 成本优化
        • 预留实例券
          • 购买预留实例券
          • 预留实例券与实例的匹配
          • 查看预留实例券使用明细
          • 查看可抵扣的实例
          • 预留实例券概述
    • 通过自建集群使用BCI
      • 运维
        • 使用coredump分析实例程序异常
      • 监控
        • 查看实例监控指标
        • 通过VK获取实例监控指标
      • 存储管理
        • 挂载EmptyDir数据卷
        • 挂载CFS文件存储
        • 挂载ConfigMap数据卷
        • 挂载PFS并行文件存储
      • 镜像管理
        • 使用CCR镜像仓库
        • 使用第三方镜像仓库
        • 使用镜像缓存
          • 查询镜像缓存
          • 镜像缓存概述
      • 对接BCI
        • 自建Kubernetes集群对接VNode
        • 对接概述
        • 混合调度
        • 通过标签将Pod调度到VNode上运行
        • 将Pod调度到VNode
        • BCI自定义condition
      • 容器配置
        • 设置容器时区
        • 容器生命周期回调
        • 在容器内获取元数据
        • 配置NTP服务
        • 强制终止Sidecar容器并忽略容器退出码
        • 使用探针对容器进行健康检查
        • 忽略Sidecar容器的NotReady状态
        • 设置容器终止消息
        • 设置容器启动命令和参数
      • 网络管理
        • 配置BCI Pod所属安全组
        • 连接公网
        • 支持自定义DNSConfig
        • 配置BCI Pod访问集群内Service
      • 预留实例券
        • 购买预留实例券
        • 预留实例券与实例的匹配
        • 查看预留实例券使用明细
        • 查看可抵扣的实例
        • 预留实例券概述
      • 日志
        • 采集日志到百度云BLS
        • bls日志采集使用方式
      • BCI Pod
        • 指定vCPU和内存创建Pod
        • BCI Pod生命周期
        • BCI Pod概述
        • 自定义设置BCI Pod的hosts
        • 创建GPU实例
        • 配置资源规整时忽略特定容器
        • 设置BCI Pod的故障处理策略
        • 为BCI Pod绑定自定义标签
        • 自定义设置BCI Pod的最大Pending时长
        • BCI Pod Annotation
        • 多可用区创建实例
  • SDK
    • Java-SDK
      • 异常处理
      • 版本变更记录
      • 初始化
      • 安装SDK工具包
      • 概述
      • 实例相关
        • 批量删除实例
        • 查询实例列表
        • 创建实例
        • 删除实例
        • 查询实例详情
    • Go-SDK
      • 异常处理
      • BCI实例
      • 初始化
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 容器实例BCI
  • arrow
  • 操作指南
  • arrow
  • 通过CCE使用BCI
  • arrow
  • 存储
  • arrow
  • 挂载BOS数据卷
本页目录
  • BOS概述
  • 提前准备
  • 创建BOS Bucket
  • 部署存储插件
  • 配置示例
  • 静态PV/PVC方式挂载BOS

挂载BOS数据卷

更新时间:2025-08-20

BOS概述

百度对象存储 BOS (Baidu Object Storage) 提供稳定、安全、高效以及高扩展存储服务,支持单文件最大 48.8 TB 的文本、多媒体、二进制等任何类型的数据存储。本文介绍如何挂载BOS数据卷。更多信息,请参考:BOS说明

提前准备

创建BOS Bucket

操作步骤请参考创建bucket

注意:请注意创建的BOS Bucket与CCE集群应该处于同一地域,暂不支持跨地域挂载BOS

部署存储插件

  1. 登录百度智能云官网,并进入管理控制台。
  2. 选择“产品服务 > 容器 > 容器引擎 CCE”,单击进入容器引擎管理控制台。
  3. 单击左侧导航栏中的 集群管理 > 集群列表 。
  4. 在集群列表页面中,单击目标集群名称进入集群详情页面。
  5. 在集群详情页面单击 组件管理 。
  6. 在组件管理列表中选择存储 CCE CSI BOS Plugin 组件单击“安装”。
    111.png
  7. 点击安装并填写相应的参数
    222.png

配置示例

静态PV/PVC方式挂载BOS

注意:由于CSI bosplugin 依赖 bosfs,在Pod中配置livenessProbe检查挂载点状态可以避免容器无法感知 bosfs 异常重启后的挂载点失效的问题,强烈建议添加该配置,具体配置项参考在Pod内挂载PVC中的例子。

  1. 在集群中创建 AK/SK 的 secret,用以访问BOS存储。
Plain Text
1kubectl create secret generic csi-bos-secret \
2  --from-literal=ak=<Your AK> \
3  --from-literal=sk=<Your SK>

关于 AK/SK 的更多信息参考:如何获取 AK 和 SK

  1. 在集群中创建PV和PVC资源
    使用kubectl,执行kubectl create -f bos-pv.yaml完成PV的创建
    对应的bos-pv.yaml文件如下所示:
Plain Text
1apiVersion: v1
2kind: PersistentVolume
3metadata:
4  name: pv-bos
5  namespace: "default"
6spec:
7  accessModes:
8  - ReadWriteOnce
9  - ReadOnlyMany
10  capacity:
11    storage: 5Gi
12  storageClassName: csi-bos
13  csi:
14    driver: "csi-bosplugin"
15    volumeHandle: "v-XXXXXX"
16    nodePublishSecretRef:
17      name: "csi-bos-secret"
18      namespace: "default"
19  mountOptions:
20  - "-o meta_expires=0 -o preload_blocks=100"
21  persistentVolumeReclaimPolicy: Retain
注意事项及参数说明:
* yaml中volumeHandle:对应的是BOS的 bucketName, 支持挂载 BOS bucket子目录 , 如: bucketName/dirName
* nodePublishSecretRef:填写步骤1中的 secret 名
* mountOptions: 由于 BOS bucket 挂载依赖 Bosfs,因此支持通过 mountOptions 指定 Bosfs 的启动参数,支持的参数详情见[BOS参数说明](https://cloud.baidu.com/doc/BOS/s/Kjwvyqg72),常用参数和说明如下:
     * meta_expires: meta缓存过期时间,单位为秒。不设置该参数代表永不过期。上述PV yaml示例中该参数被设置为0,代表不缓存。缓存过期时间过短可能影响写入性能,过长可能导致挂载点内看不到其他客户端写入同一bucket的数据。同一bucket一写多读场景建议设置为0,纯写入场景建议设置为3600,单点读写场景可以不设置。
     * preload_blocks: 指定预读blocks数, 单次预读数据为: preload_blocks*1MB。默认0, 如进行大文件下载(顺序读), 建议配置, 若进行随机读, 则不建议配置。
* BOS 支持一写多读,对应的 accessMode 只支持 ReadWriteOnce + ReadOnlyMany

创建PV后,输入kubectl get pv可以看见一个available状态的PV,如下所示:

Plain Text
1$ kubectl get pv
2NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM     STORAGECLASS   REASON    AGE
3bos-pv    5Gi        RWO,ROX        Retain           Available             csi-bos                      3s
  1. 建立一个能够与该PV绑定的PVC
    使用kubectl,执行kubectl create -f bos-pvc.yaml完成PVC的创建
    对应的bos-pvc.yaml文件如下所示:
Plain Text
1apiVersion: v1
2kind: PersistentVolumeClaim
3metadata:
4  name: bos-pvc
5spec:
6  accessModes:
7  - ReadWriteOnce
8  - ReadOnlyMany
9  resources:
10    requests:
11      storage: 5Gi
12  storageClassName: csi-bos
注意:yaml中storageClassName字段用于和 PV关联,建议填写,如果集群中使用多类存储系统的 PV

绑定前,PVC为pending状态

Plain Text
1$ kubectl get pvc
2NAME      STATUS    VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
3bos-pvc   Pending                                       csi-bos        2s                                                 

绑定后,PV和PVC状态变为Bound

Plain Text
1$ kubectl get pv
2NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM             STORAGECLASS   REASON    AGE
3bos-pv    5Gi        RWX            Retain           Bound     default/bos-pvc                            36s
4$ kubectl get pvc
5NAME      STATUS    VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
6bos-pvc   Bound     bos-pv    5Gi        RWO,ROX        csi-bos        1m

有关PV和PVC的更多设置和字段说明,见k8s官方文档

  1. 在Pod内挂载PVC
    在Pod spec内指定相应的PVC名称即可,使用kubectl,执行kubectl create -f demo-bos-pod.yaml完成pod的创建
    对应的demo-bos-pod.yaml文件如下所示:
Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  name: nginx01
5  namespace: default
6spec:
7  containers:
8  - image: nginx
9    imagePullPolicy: Always
10    name: nginx01
11    volumeMounts:
12    - mountPath: /var/lib/www/html
13      name: bos-pvc
14    - mountPath: /var/lib/www/html000
15      name: bos-pvc
16      readOnly: true
17    livenessProbe:
18      exec:
19        command:
20        - stat
21        - /var/lib/www/html
22  volumes:
23  - name: bos-pvc
24    persistentVolumeClaim:
25      claimName: bos-pvc
26      readOnly: false

Pod创建后,可以读写容器内的/var/lib/www/html路径来访问相应的BOS存储上的内容, 同时该路径支持读写,/var/lib/www/html000支持只读。

注意:由于CSI bosplugin 依赖 bosfs,在Pod中配置livenessProbe可以避免容器无法感知 bosfs 异常重启后的挂载点失效的问题。

同时,支持在其余机器上挂载只读盘,kubectl create -f demo-bos-pod1.yaml创建一个包含只读 bos bucket的 pod

Plain Text
1apiVersion: v1
2kind: Pod
3metadata:
4  name: nginx01-bbaa
5spec:
6  containers:
7  - image: nginx
8    imagePullPolicy: Always
9    name: nginx01
10    terminationMessagePath: /dev/termination-log
11    terminationMessagePolicy: File
12    volumeMounts:
13    - mountPath: /var/lib/www/html000
14      name: bos-pvc
15      readOnly: true
16    livenessProbe:
17      exec:
18        command:
19        - stat
20        - /var/lib/www/html000
21  volumes:
22  - name: bos-pvc
23    persistentVolumeClaim:
24      claimName: bos-pvc
25      readOnly: true
  1. 释放PV和PVC资源
    完成存储资源的使用后,可以释放PVC和PV资源
    使用以下命令可以释放PVC
Plain Text
1$ kubectl delete -f  bos-pvc.yaml

释放PVC后,原来与之绑定的PV状态会变为Release,如下所示:

Plain Text
1NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM             STORAGECLASS   REASON    AGE
2bos-pv    5Gi        RWO,ROX        Retain           Released   default/bos-pvc   csi-bos        16m

输入以下指令释放PV资源

Plain Text
1$ kubectl delete -f  bos-pv.yaml

上一篇
挂载ConfigMap数据卷
下一篇
挂载PFS并行文件存储