You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
存储
容器 rootfs 持久化
复制全文
下载 pdf
容器 rootfs 持久化
弹性容器实例支持通过用户自定义配置,将 VCI Pod 的读写层挂载到云盘持久化卷上,实现容器 rootfs 数据持久化。
使用限制
  • 目前仅支持使用弹性块存储 EBS(又称云盘)持久化 rootfs 数据,其它存储类型暂不支持。
  • 初次使用 EBS 持久化 rootfs 数据时,建议使用空盘;若非空盘,建议指定目录。不指定目录时,默认使用根目录,此时请确保根目录下不存在upperwork目录。
前提条件
  • 集群中已安装 csi-ebs 组件。详细操作,请参见 csi-ebs 组件
  • 已创建极速型 SSD 云盘。详细操作,请参见 创建云盘
功能介绍
通过在 VCI Pod 中添加 Annotation 来指定容器读写层使用的卷(Volume)。
Annotation Key
Annotation Value 示例值
说明
vci.volcengine.com/overlay-rw-layer-spec
[]
是否持久化存储容器 rootfs 数据。需通过配置如下参数,实现持久化存储:
  • name: 目标容器名称。
  • volumeName: Volume 名称。此处设置的名称必须和 Pod YAML 中spec.volumes.name的值一致。
  • Path: 指定容器 rootfs 数据在 Volume 内的存储路径。默认为空,表示使用 Volume 对应的根目录作为容器 rootfs 数据存储路径。
说明
当多个容器使用相同 Volume 作为容器 rootfs 数据存储路径时,必须通过path区分。
Pod Annotation 的 YAML 片段示例如下所示:
vci.volcengine.com/overlay-rw-layer-spec: |-
[
{
"name": "$目标容器名称",
"volumeName": "$Volume_名称",
"path": "$Volume_内存储路径"
},
{
"name": "my_container",
"volumeName": "ebs-volume",
"path": "final/rootfs-dir1"
}
]
使用方法
下文以使用云盘静态存储卷,创建 VCI Pod,实现容器 rootfs 数据持久化为例。更多云盘存储卷使用方法,请参见 EBS 云盘存储卷
  1. 通过 kubectl 连接 VCI 业务集群。具体操作说明,请参见 连接集群
  1. 创建 EBS 类型的存储卷(PV)。
  1. 创建 PV 的 YAML 文件。示例 YAML 文件vci-ebs-pv.yaml代码如下:
  • apiVersion: v1
    kind: PersistentVolume
    metadata:
    name: vci-ebs-pv # PV 名称。
    spec:
    accessModes:
    - ReadWriteOnce
    capacity:
    storage: 20Gi # EBS 存储容量。
    csi:
    driver: ebs.csi.volcengine.com
    fsType: ext4
    volumeAttributes:
    ChargeType: PostPaid
    type: ESSD_PL0 # 云盘类型,云盘名称必须大写。
    zone: cn-beijing-a # 业务所在可用区。
    volumeHandle: vol-cmukmy9yi5bi254b**** # 指定已有的极速型 SSD 云盘 ID。
    volumeMode: Filesystem
  1. 执行以下命令,创建 PV。
  • kubectl create -f vci-ebs-pv.yaml
  1. 创建存储卷声明(PVC)。
  1. 创建 PVC 的 YAML 文件。示例 YAML 文件vci-ebs-pvc.yaml代码如下:
  • apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: vci-ebs-pvc # PVC 名称。
    namespace: default # PVC 所在命名空间。
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: 20Gi
    volumeMode: Filesystem
    volumeName: vci-ebs-pv # 绑定到该 PVC 的 PV 名称,即步骤 2 中创建的 PV 名称。
  1. 执行以下命令,创建 PVC。
  • kubectl create -f vci-ebs-pvc.yaml
  1. 创建 VCI 实例,配置容器 rootfs 数据持久化相关参数。创建 VCI 实例相关详细说明,请参见 创建实例
  1. 创建 VCI Pod 的 YAML 文件。示例 YAML 文件vci-pod-ebs-rootfs.yaml代码如下:
  • apiVersion: v1
    kind: Pod
    metadata:
    name: vci-pod-ebs-rootfs # Pod 名称。
    namespace: default # Pod 所属命名空间。
    annotations:
    vke.volcengine.com/burst-to-vci: enforce # 强制使用 VCI。
    vci.volcengine.com/overlay-rw-layer-spec: |-
    [
    {
    "name": "c1",
    "volumeName": "rootfs",
    "path": "final/rootfs-dir1"
    },
    {
    "name": "c2",
    "volumeName": "rootfs",
    "path": "final/rootfs-dir2"
    }
    ]
    labels:
    app: vci-pod-ebs-rootfs
    spec:
    containers:
    name: c1 # 容器名称。
    image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0 # Pod 的容器镜像地址和 Tag,请替换为您实际业务中的镜像地址。
    imagePullPolicy: Always
    name: c2 # 容器名称。
    image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0 # Pod 的容器镜像地址和 Tag,请替换为您实际业务中的镜像地址。
    imagePullPolicy: Always
    tolerations:
    - effect: NoSchedule
    key: vci.vke.volcengine.com/node-type
    operator: Equal
    value: vci
    volumes:
    - name: rootfs # 与 annotation 中指定的 volumeName 保持一致。
    persistentVolumeClaim:
    claimName: vci-ebs-pvc # 与步骤 3 中创建的 EBS 关联 PVC 的名字一致。
  1. 执行以下命令,创建 VCI Pod。
  • kubectl create -f vci-pod-ebs-rootfs.yaml
验证步骤
本文以在 Pod 中安装 vim 组件为例,为您提供验证方式。该验证方式需要确保集群已开启 公网访问
说明
若创建集群时未开启公网访问,请手动为集群配置公网访问。详细操作,请参见 FAQ
  1. 登录到已创建的 VCI Pod,在 Pod 中安装 vim 组件。
  • vim --version # 验证 vim 尚未安装
    apt-get update
    apt-get install vim -y
    vim --version # 验证 vim 安装成功
  1. 将 Pod 删除,然后使用相同的 Pod YAML 再次创建 Pod。
  • kubectl delete pod vci-pod-ebs-rootfs -n default
    kubectl create -f vci-pod-ebs-rootfs.yaml
  1. 登录到再次创建的 Pod,使用vim --version命令验证之前安装的 vim 组件已被存储保留。
最近更新时间:2026.08.19 11:24:21
这个页面对您有帮助吗?
有用
有用
无用
无用