OSS存储卷支持同时被多个Pod挂载,适用于读文件且对磁盘I/O要求不高的场景,例如读配置文件、视频、图片文件等。您可以通过RRSA鉴权或者RAM用户AccessKey鉴权进行权限配置,并挂载使用OSS静态存储卷。
如需定期轮转AccessKey,在1.26及以上版本的集群中建议您通过RRSA鉴权方式挂载,避免由于AccessKey轮转导致的ossfs重挂载和业务重启问题。
前提条件
- 集群的存储组件为CSI。如需升级组件,请参见管理csi-plugin和csi-provisioner组件。 说明- CSI组件v1.30.4-*版本起,OSS静态卷挂载依赖csi-provisioner组件。 
- 已创建OSS Bucket,且Bucket与集群属于同一阿里云账号。 说明- 若需要跨账号挂载OSS Bucket,建议您通过RRSA鉴权方式实现,详情请参考如何跨账号挂载OSS Bucket? 
注意事项
- 建议为挂载OSS存储卷的Pod配置健康检查,当容器内OSS目录不可用时,可自动重启Pod重新挂载OSS。 说明- ACK集群升级时会重启kubelet,导致ossfs驱动随之重启,继而造成OSS目录不可用。v1.18.8.45及以上版本的csi-plugin和csi-provisioner组件已修复此问题。请及时升级csi-plugin和csi-provisioner。 
- 若您在应用模板中配置了securityContext.fsgroup参数,kubelet在存储卷挂载完成后会执行 - chmod或- chown操作,导致挂载时间延长。若您已配置securityContext.fsgroup参数,且需要减少挂载时间,请参见OSS存储卷挂载时间延长。
- 通过ossfs进行ls等操作时,将发起HTTP请求到OSS获取文件的meta信息,如果ls的目标目录下文件较多(例如超过100,000个,该数值与机器内存大小相关),ossfs将消耗大量系统内存,可能导致Pod发生OOM(Out Of Memory)事件。您可以通过挂载OSS Bucket的子目录,或对文件较多的目录进行目录分级解决此问题。 
- ossfs适用于并发读场景,配置PVC和PV的访问模式为ReadOnlyMany。若需写入数据,建议您通过OSS SDK、ossutil工具等方式实现数据读写分离,同时配置OSS存储卷的访问模式为ReadWriteMany。具体操作,请参见OSS存储读写分离最佳实践。 重要- 在并发写场景中,ossfs无法保证数据写入的一致性。 
- 挂载状态下,登录应用Pod或宿主机,在挂载路径下删除或变更文件,都会直接删除或变更OSS Bucket中对应的源文件。您可以开启OSS Bucket的版本控制,避免误删除重要数据,请参见版本控制。 
 
- 当传输的文件大于10 MB时,可以将文件切成碎片,分片上传。分片上传过程中断后,如您不再需要这些碎片,可以手动删除碎片或通过生命周期规则删除碎片。 
通过RRSA鉴权方式挂载
基于适用于服务账户的RAM角色(RAM Roles for Service Accounts,简称RRSA)功能,您可以在集群内实现PV维度的OpenAPI权限隔离,从而实现云资源访问权限的细粒度隔离,降低安全风险。更多信息,请参见通过RRSA配置ServiceAccount的RAM权限实现Pod权限隔离。
RRSA鉴权方式挂载仅支持1.26及以上版本的集群,且集群使用的CSI组件为1.30.4及以上版本。若您在1.30.4之前的版本中使用了RRSA功能,请及时参见【产品变更】CSI ossfs版本升级与挂载流程优化增加RAM角色授权配置。
步骤一:创建RAM角色
如果您在集群中首次使用RRSA功能,需要按照以下步骤操作,如果您已经在集群中使用过RRSA鉴权方式挂载OSS存储卷,则可以跳过本步骤。
- 为OSS存储卷RRSA鉴权新建RAM角色,即使用RRSA功能扮演的指定角色。具体操作,请参见创建OIDC身份提供商的RAM角色。 - 以demo-role-for-rrsa为例,主要参数说明如下。 - 配置项 - 描述 - 身份提供商类型 - OIDC。 - 身份提供商 - 选择ack-rrsa-<cluster_id>。其中,<cluster_id>为您的集群ID。 - 条件 - oidc:iss:保持默认。 
- oidc:aud:保持默认。 
- oidc:sub:需手动添加该条件。 - 条件键:选择oidc:sub。 
- 运算符:选择StringEquals。 
- 条件值:默认输入 - system:serviceaccount:ack-csi-fuse:csi-fuse-ossfs。- 其中, - ack-csi-fuse为ossfs客户端所在的命名空间,无法自定义。- csi-fuse-ossfs为服务账户名称,可修改为指定的服务账户名称。- 关于如何修改服务账户名称,请参见如何在RRSA鉴权方式中使用指定的ARNs或ServiceAccount? 
 
 - 角色名称 - demo-role-for-rrsa。 
步骤二:为demo-role-for-rrsa角色授权
- 创建如下OSS访问的自定义权限策略。具体操作,请参见创建自定义权限策略。 - 以下只读和读写权限策略请根据使用需求选择,并替换 - mybucket为您实际创建的Bucket名称。- OSS只读权限策略 
- OSS读写权限 
 
- (可选)若您使用KMS托管的指定CMK ID加密OSS Object,还需要为该RAM用户配置KMS权限。具体操作,请参见加密操作。 
- 为demo-role-for-rrsa角色授权。具体操作,请参见为RAM角色授权。 说明- 您也可以通过修改RAM角色信任策略的方式使用已有的授权了OSS权限的RAM角色。具体操作,请参见使用已存在的RAM角色并授权。 
步骤三:创建PV和PVC
- 配置PV使用RRSA鉴权。 - 使用以下内容,创建配置RRSA权限认证的pv-rrsa.yaml示例文件。 - apiVersion: v1 kind: PersistentVolume metadata: name: pv-oss labels: alicloud-pvname: pv-oss spec: capacity: storage: 5Gi accessModes: - ReadOnlyMany persistentVolumeReclaimPolicy: Retain csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: pv-oss # 需和PV名字一致。 volumeAttributes: bucket: "oss" # 替换为实际Bucket名称。 path: / url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" authType: "rrsa" roleName: "demo-role-for-rrsa"- 参数 - 描述 - name - PV的名称。 - labels - 配置PV的标签。 - storage - OSS的可使用量。 - accessModes - 配置访问模式,支持ReadOnlyMany和ReadWriteMany。 - 选择ReadOnlyMany时,ossfs将以只读模式挂载OSS Bucket。 - persistentVolumeReclaimPolicy - PV回收策略,当前OSS存储卷仅支持 - Retain,即删除PVC时,PV和OSS Bucket中的数据不会被删除。- driver - 定义驱动类型。取值为ossplugin.csi.alibabacloud.com,表示使用阿里云OSS CSI插件。 - volumeHandle - 需和PV名字一致。 - bucket - 需要挂载的OSS Bucket。 - path - 表示挂载时相对Bucket根文件的目录结构,默认为/(v1.14.8.32-c77e277b-aliyun及之后版本的CSI组件支持)。 - ossfs 1.91版本前,该路径需在OSS侧预先创建,详情请参见ossfs 1.0新版本功能介绍及性能压测。 - url - 挂载OSS的Endpoint,Endpoint以OSS控制台Bucket概览页为准。 - 挂载节点和Bucket相同地域,或已打通VPC网络时,请使用内网地址。 
- 挂载节点和Bucket不同地域时,请使用外网地址。 
 - 不同访问端口的常见填写格式如下: - 内网格式: - http://oss-{{regionName}}-internal.aliyuncs.com或- https://oss-{{regionName}}-internal.aliyuncs.com。
- 外网格式: - http://oss-{{regionName}}.aliyuncs.com或- https://oss-{{regionName}}.aliyuncs.com。
 重要- vpc100-oss-{{regionName}}.aliyuncs.com的内网访问端口格式已废弃,请及时切换。- otherOpts - 您可以为OSS存储卷输入定制化参数,格式为 - -o *** -o ***,例如- -o umask=022 -o max_stat_cache_size=100000 -o allow_other。- umask:用于更改ossfs读文件的权限。例如,设置- umask=022后,ossfs文件的权限都会变更为755。通过SDK、OSS控制台等其他方式上传的文件在ossfs中默认权限均为640。因此,建议您在读写分离场景中配置- umask权限。
- max_stat_cache_size:用于指定文件元数据的缓存空间,可缓存多少个文件的元数据。元数据缓存可加快ls操作速度。但若通过OSS、SDK、控制台、ossutil等方式修改文件,可能会导致元数据未被及时更新。设置- max_stat_cache_size=0可关闭元信息缓存。
- allow_other:赋予计算机上其他用户访问挂载目录的权限,但不包含目录内的文件。
 - 更多可选参数,请参见挂载选项说明。 - authType - 配置为 - rrsa,声明使用RRSA方式鉴权。- roleName - 配置为以上步骤一:创建RAM角色中已创建或修改的RAM角色名称。若您需要为不同的PV配置不同的权限,可以创建不同的RAM角色,在PV中配置不同的roleName。 - sigVersion - 请求OSS服务端的请求签名版本,支持的值为: 说明- 如果您需要在RRSA鉴权方式中使用指定的ARNs或ServiceAccount,相关操作,请参见如何在RRSA鉴权方式中使用指定的ARNs或ServiceAccount?。 
- 在PV中配置RRSA进行权限认证。 - kubectl create -f pv-rrsa.yaml
 
- 创建存储声明PVC。 - kubectl create -f pvc-oss.yaml- 以下为创建存储声明PVC的pvc-oss.yaml示例文件。 - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-oss spec: accessModes: - ReadOnlyMany resources: requests: storage: 5Gi selector: matchLabels: alicloud-pvname: pv-oss- 参数 - 说明 - name - PVC的名称。 - accessModes - 配置访问模式,支持ReadOnlyMany和ReadWriteMany。 - 选择ReadOnlyMany时,ossfs将以只读模式挂载OSS Bucket。 - storage - 声明应用使用量,不能大于存储卷的总量。 - alicloud-pvname - 通过标签关联PV,与PV标签保持一致。 
步骤四:创建应用
创建一个名为oss-static的应用并挂载PVC。
kubectl create -f oss-static.yamloss-static.yaml示例如下:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: oss-static
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        ports:
        - containerPort: 80
        volumeMounts:
          - name: pvc-oss
            mountPath: "/data"
          - name: pvc-oss
            mountPath: "/data1"
        livenessProbe:
          exec:
            command:
            - sh
            - -c
            - cd /data
          initialDelaySeconds: 30
          periodSeconds: 30
      volumes:
        - name: pvc-oss
          persistentVolumeClaim:
            claimName: pvc-oss- livenessProbe:配置健康检查。更多信息,请参见OSS存储卷。
- mountPath:OSS在容器中挂载的位置。
- claimName:PVC的名称,用于绑定PVC。
通过RAM用户AccessKey鉴权方式挂载
- 使用该方式挂载时,如果OSS存储卷引用的AccessKey被撤销或取消授权,已经挂载了存储卷的应用将无权访问OSS并报权限错误。您需要修改Secret中的AccessKey信息并重新挂载,此操作将导致应用重启。AccessKey吊销后ossfs重挂载流程,请参见OSS存储挂载权限问题中场景4的解决方案。 
- 如果有定期轮转AccessKey的需求,建议您通过RRSA鉴权方式挂载。 
步骤一:创建具有OSS访问权限的RAM用户并获取AccessKey
您需要首先获取RAM用户的AccessKey信息,以使其拥有OSS Bucket的操作权限。
- 创建RAM用户,如已创建可跳过。具体操作,请参见创建RAM用户。 
- 创建如下OSS访问的自定义权限策略。具体操作,请参见创建自定义权限策略。 - 以下只读和读写权限策略请根据使用需求选择,并替换 - mybucket为您实际创建的Bucket名称。- OSS只读权限策略 
- OSS读写权限 
 
- (可选)若您使用KMS托管的指定CMK ID加密OSS Object,还需要为该RAM用户配置KMS权限。具体操作,请参见加密操作。 
- 为RAM用户添加OSS权限。具体操作,请参见为RAM用户授权。 
- 为RAM用户创建AccessKey。具体操作,请参见获取AccessKey。 
步骤二:创建PV和PVC并挂载
您可以通过控制台和kubectl两种方式创建存储卷、存储声明并挂载至应用中。
kubectl
1、创建PV和PVC
您可以使用Secret为CSI组件提供AccessKey信息,使用Secret方式创建PV和PVC。
- 使用该方式挂载时,如果OSS存储卷引用的AccessKey被撤销或取消授权,已经挂载了存储卷的应用将无权访问OSS并报权限错误。您需要修改Secret中的AccessKey信息并重新挂载,此操作将导致应用重启。AccessKey吊销后ossfs重挂载流程,请参见OSS存储挂载权限问题中场景4的解决方案。 
- 如果有定期轮转AccessKey的需求,建议您通过RRSA鉴权方式挂载。 
- 创建Secret。 - 以下为通过Secret配置AccessKey信息的YAML示例文件。 - apiVersion: v1 kind: Secret metadata: name: oss-secret namespace: default stringData: akId: <your AccessKey ID> akSecret: <your AccessKey Secret>说明- 创建Secret选择的Namespace需要和应用所在的Namespace一致。 - 本示例中, - akId和- akSecret需要替换为步骤一获取的AccessKey ID和AccessKey Secret。
- 创建静态卷PV。 - kubectl create -f pv-oss.yaml- 以下为创建静态卷PV的pv-oss.yaml示例文件。 - apiVersion: v1 kind: PersistentVolume metadata: name: pv-oss labels: alicloud-pvname: pv-oss spec: capacity: storage: 5Gi accessModes: - ReadOnlyMany persistentVolumeReclaimPolicy: Retain csi: driver: ossplugin.csi.alibabacloud.com volumeHandle: pv-oss # 需要和PV名字一致。 nodePublishSecretRef: name: oss-secret namespace: default volumeAttributes: bucket: "oss" #替换为实际Bucket名称。 url: "oss-cn-hangzhou.aliyuncs.com" otherOpts: "-o umask=022 -o max_stat_cache_size=100000 -o allow_other" path: "/"- 参数 - 描述 - name - PV的名称。 - labels - 配置PV的标签。 - storage - OSS的可使用量。 - accessModes - 配置访问模式,支持ReadOnlyMany和ReadWriteMany。 - 选择ReadOnlyMany时,ossfs将以只读模式挂载OSS Bucket。 - persistentVolumeReclaimPolicy - PV回收策略,当前OSS存储卷仅支持 - Retain,即删除PVC时,PV和OSS Bucket中的数据不会被删除。- driver - 定义驱动类型。取值为ossplugin.csi.alibabacloud.com,表示使用阿里云OSS CSI插件。 - nodePublishSecretRef - 定义挂载PV时通过Secret对象来获取AccessKey信息。 - volumeHandle - 配置PV的名称。 - bucket - 需要挂载的OSS Bucket。 - url - 挂载OSS的Endpoint,Endpoint以OSS控制台Bucket概览页为准。 - 挂载节点和Bucket相同地域,或已打通VPC网络时,请使用内网地址。 
- 挂载节点和Bucket不同地域时,请使用外网地址。 
 - 不同访问端口的常见填写格式如下: - 内网格式: - http://oss-{{regionName}}-internal.aliyuncs.com或- https://oss-{{regionName}}-internal.aliyuncs.com。
- 外网格式: - http://oss-{{regionName}}.aliyuncs.com或- https://oss-{{regionName}}.aliyuncs.com。
 重要- vpc100-oss-{{regionName}}.aliyuncs.com的内网访问端口格式已废弃,请及时切换。- otherOpts - 您可以为OSS存储卷输入定制化参数,格式为 - -o *** -o ***,例如- -o umask=022 -o max_stat_cache_size=100000 -o allow_other。- umask:用于更改ossfs读文件的权限。例如,设置- umask=022后,ossfs文件的权限都会变更为755。通过SDK、OSS控制台等其他方式上传的文件在ossfs中默认权限均为640。因此,建议您在读写分离场景中配置- umask权限。
- max_stat_cache_size:用于指定文件元数据的缓存空间,可缓存多少个文件的元数据。元数据缓存可加快ls操作速度。但若通过OSS、SDK、控制台、ossutil等方式修改文件,可能会导致元数据未被及时更新。设置- max_stat_cache_size=0可关闭元信息缓存。
- allow_other:赋予计算机上其他用户访问挂载目录的权限,但不包含目录内的文件。
 - 更多可选参数,请参见挂载选项说明。 - path - 表示挂载时相对Bucket根文件的目录结构,默认为/(v1.14.8.32-c77e277b-aliyun及之后版本的CSI组件支持)。 - ossfs 1.91版本前,该路径需在OSS侧预先创建,详情请参见ossfs 1.0新版本功能介绍及性能压测。 - sigVersion - 请求OSS服务端的请求签名版本,支持的值为: 
- 创建存储声明PVC。 - kubectl create -f pvc-oss.yaml- 以下为创建存储声明PVC的pvc-oss.yaml示例文件。 - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-oss spec: accessModes: - ReadOnlyMany resources: requests: storage: 5Gi selector: matchLabels: alicloud-pvname: pv-oss- 参数 - 说明 - name - PVC的名称。 - accessModes - 配置访问模式,支持ReadOnlyMany和ReadWriteMany。 - 选择ReadOnlyMany时,ossfs将以只读模式挂载OSS Bucket。 - storage - 声明应用使用量,不能大于存储卷的总量。 - alicloud-pvname - 通过标签关联PV,与PV标签保持一致。 
2、创建应用
创建一个名为oss-static的应用并挂载PVC。
kubectl create -f oss-static.yamloss-static.yaml示例如下:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: oss-static
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        ports:
        - containerPort: 80
        volumeMounts:
          - name: pvc-oss
            mountPath: "/data"
          - name: pvc-oss
            mountPath: "/data1"
        livenessProbe:
          exec:
            command:
            - sh
            - -c
            - cd /data
          initialDelaySeconds: 30
          periodSeconds: 30
      volumes:
        - name: pvc-oss
          persistentVolumeClaim:
            claimName: pvc-oss- livenessProbe:配置健康检查。更多信息,请参见OSS存储卷。
- mountPath:OSS在容器中挂载的位置。
- claimName:PVC的名称,用于绑定PVC。
控制台
1、创建PV
- 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在存储卷页面,单击右上角的创建。 
- 在创建存储卷对话框中配置参数。 - 配置项 - 说明 - 示例值 - 存储卷类型 - 选择OSS。 - OSS - 名称 - 创建存储卷的名称,在集群内必须唯一。 - pv-oss - 总量 - 所创建存储卷的容量。 - 20GiB - 访问模式 - 支持ReadOnlyMany和ReadWriteMany,默认为ReadOnlyMany。 - 选择ReadOnlyMany时,ossfs将以只读模式挂载OSS Bucket。 - ReadOnlyMany - 访问证书 - 选择访问OSS所需的保密字典,即步骤一获取的AccessKey ID和AccessKey Secret。 - 选择已有保密字典:选择命名空间和保密字典。 
- 新建保密字典:配置命名空间、名称、AccessKey ID及AccessKey Secret。 
 - 选择已有保密字典 - 可选参数 - 您可以为OSS存储卷输入定制化参数,格式为 - -o *** -o ***,例如- -o umask=022 -o max_stat_cache_size=100000 -o allow_other。- umask:用于更改ossfs读文件的权限。例如,设置- umask=022后,ossfs文件的权限都会变更为755。通过SDK、OSS控制台等其他方式上传的文件在ossfs中默认权限均为640。因此,建议您在读写分离场景中配置- umask权限。
- max_stat_cache_size:用于指定文件元数据的缓存空间,可缓存多少个文件的元数据。元数据缓存可加快ls操作速度。但若通过OSS、SDK、控制台、ossutil等方式修改文件,可能会导致元数据未被及时更新。设置- max_stat_cache_size=0可关闭元信息缓存。
- allow_other:赋予计算机上其他用户访问挂载目录的权限,但不包含目录内的文件。
 - 更多可选参数,请参见挂载选项说明。 - -o umask=022 -o max_stat_cache_size=0 -o allow_other- Bucket ID - 您要使用的OSS Bucket的名称。单击选择Bucket,在弹出的对话框中选择所需的Bucket并单击选择。 说明- 此处显示为已配置的AccessKey可获取到的Bucket列表。 - 选择Bucket - OSS Path - 表示挂载时相对Bucket根文件的目录结构,默认为/(v1.14.8.32-c77e277b-aliyun及之后版本的CSI组件支持)。 - ossfs 1.91版本前,该路径需在OSS侧预先创建,详情请参见ossfs 1.0新版本功能介绍及性能压测。 - / - 访问域名 - 您可以参考以下情况选择需要的访问域名。 - 如果Bucket和ECS实例位于不同地域(Region),请选择公网域名。 
- 如果Bucket和ECS实例位于相同地域,请选择私网域名。 说明- 通过私网访问时,默认使用HTTP协议。若您需要指定网络传输协议为HTTPS,可使用kubectl命令行方式创建静态PV。 
 - 公网域名 
- 参数配置完成后,单击创建。 
2、创建PVC
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在存储声明页面,单击右上角的创建。 
- 在创建存储声明页面中,填写界面参数。 - 配置项 - 说明 - 示例值 - 存储声明类型 - 选择OSS。 - OSS - 名称 - 创建存储声明的名称。 - pvc-oss - 分配模式 - 选择已有存储卷。 说明- 若未创建存储卷,您可以设置分配模式为创建存储卷,配置创建存储卷参数。 - pv-oss - 已有存储卷 - 单击选择已有存储类,在目标存储卷右侧操作列,单击选择,选择存储卷。 - 总量 - 所创建存储卷的容量。 说明- 所创建的存储卷容量不能超过存储空间容量。 - 20GiB 
- 单击创建。 - 创建成功后可以在列表中看到csi-oss-pvc,并且已绑定相应的存储卷。 
3、创建应用
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在无状态页面,单击使用镜像创建。 
- 配置创建应用的参数信息,配置完成后,单击创建。 - 主要参数如下,其他参数保持默认即可。更多信息,请参见创建无状态工作负载Deployment。 - 配置页 - 参数 - 说明 - 示例 - 应用基本信息 - 应用名称 - Deployment名称,自定义输入。格式要求请参考界面提示。 - test-oss - 副本数量 - Deployment的副本数量。 - 2 - 容器配置 - 镜像名称 - 用于部署应用的镜像地址。 - anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 - 所需资源 - 所需的vCPU和内存资源。 - 0.25 vCPU,0.5 GiB - 数据卷 - 单击增加云存储声明,然后完成参数配置。 - 挂载源:选择之前创建的PVC。 
- 容器路径:输入OSS要挂载到的容器路径。 
 - 挂载源:pvc-oss 
- 容器路径:/data 
  
- 查看应用部署状态。 - 在无状态页面,单击应用名称。 
- 在容器组页签下,确认Pod已正常运行(状态为Running)。 
 
验证OSS的持久化存储和共享存储
- 查看部署oss-static应用所在的Pod。 - kubectl get pod- 预期输出: - NAME READY STATUS RESTARTS AGE oss-static-66fbb85b67-d**** 1/1 Running 0 1h oss-static-66fbb85b67-l**** 1/1 Running 0 1h
- 在任意Pod下创建tmpfile文件。 
- 在两个Pod挂载路径下查看文件。 - 以名oss-static-66fbb85b67-d****的Pod挂载路径为 - data,名为- oss-static-66fbb85b67-l****的挂载路径为- data1为例。- kubectl exec oss-static-66fbb85b67-d**** -- ls /data | grep tmpfile kubectl exec oss-static-66fbb85b67-l**** -- ls /data1 | grep tmpfile- 预期输出如下,两个Pod的挂载路径下均存在此文件,说明两个Pod共享数据。 - tmpfile说明- 若您无法看到预期输出,请确认CSI组件版本为v1.20.7及以上版本。更多信息,请参见csi-plugin。 
- 验证Pod删除后,存储空间里的文件还存在。 - 删除Pod。 - kubectl delete pod oss-static-66fbb85b67-d****
- 查看重建的Pod名称。 - kubectl get pod- 预期输出: - NAME READY STATUS RESTARTS AGE oss-static-66fbb85b67-l**** 1/1 Running 0 1h oss-static-66fbb85b67-z**** 1/1 Running 0 40s
- 查看 - /data路径下的文件。- kubectl exec oss-static-66fbb85b67-z**** -- ls /data | grep tmpfile- 预期输出如下,tempfile文件仍然存在,说明OSS的数据可持久化保存。 - tmpfile
 
相关文档
- 如需通过OSS实现读写分离,请参见OSS存储读写分离最佳实践。 
- 如需通过CNFS托管使用OSS以提升OSS存储卷的性能和QoS控制,请参见管理OSS生命周期。 
- 如需对OSS存储卷进行加密,请参见加密ossfs 1.0存储卷。 
- 如需对OSS存储卷进行监控,请参见容器存储监控概述。 
- 关于ossfs和OSS的常见问题,请参见ossfs 1.0、ossfs 1.0存储卷FAQ。