云容器引擎 CCE云容器引擎 CCE

更新时间:2021/08/31 GMT+08:00
分享

使用kubectl对接已有对象存储

操作场景

CCE支持使用已有的对象存储来创建PersistentVolume,并通过创建对应PersistentVolumeClaim绑定当前PersistentVolume使用。

前提条件

您已经创建好一个CCE集群,并且在该集群中安装CSI插件(Everest)。

约束与限制

如下配置示例适用于Kubernetes 1.15及以上版本的集群。

操作步骤

  1. 登录OBS控制台,创建对象存储桶,记录桶名称和存储类型。
  2. 请参见通过kubectl连接集群,使用kubectl连接集群。
  3. 新建两个yaml文件,用于创建PersistentVolume(PV)、PersistentVolumeClaim(PVC),假设文件名为pv-obs-example.yaml、pvc-obs-example.yaml。

    touch pv-obs-example.yaml pvc-obs-example.yaml

    • vi pv-obs-example.yaml
      PV yaml文件配置示例:
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-obs-example
        annotations:
          pv.kubernetes.io/provisioned-by: everest-csi-provisioner
      spec:
        mountOptions:
        - umask=0027
        - uid=10000,gid=10000
        accessModes:
        - ReadWriteMany
        capacity:
          storage: 1Gi
        claimRef:
          apiVersion: v1
          kind: PersistentVolumeClaim
          name: pvc-obs-example
          namespace: default
        csi:
          driver: obs.csi.everest.io
          fsType: obsfs
          volumeAttributes:
            everest.io/obs-volume-type: STANDARD
            everest.io/region: cn-north-4
            storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner
          volumeHandle: obs-normal-static-pv
        persistentVolumeReclaimPolicy: Delete
        storageClassName: csi-obs
      表1 关键参数说明

      参数

      描述

      driver

      挂载依赖的存储驱动,对象存储配置为“obs.csi.everest.io”。

      everest.io/obs-volume-type

      存储类型,包括STANDARD(标准桶)、WARM(低频访问桶)。

      everest.io/region

      OBS存储区域。

      Region对应的值请参见地区和终端节点

      volumeHandle

      对象存储的桶名称。

      storage

      存储容量,单位为Gi。此处配置为固定值1Gi。

      storageClassName

      k8s storage class名称;需配置为"csi-obs”。

      fsType

      文件类型,支持“obsfs”与“s3fs”,取值为s3fs时创建是obs对象桶,配套使用s3fs挂载;取值为obsfs时创建的是obs并行文件系统,配套使用obsfs挂载,推荐使用。

      spec.mountOptions

      挂载参数,具体请参见对象存储挂载参数

      spec.claimRef.apiVersion

      固定值"v1"。

      spec.claimRef.kind

      固定值"PersistentVolumeClaim"。

      spec.claimRef.name

      pvc名称;与下一步创建的pvc的name一致。

      spec.claimRef.namespace

      pvc的namespace;是下一步创建的pvc的namespace一致。

    • vi pvc-obs-example.yaml

      PVC yaml文件配置示例:

      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner
          everest.io/obs-volume-type: STANDARD
          csi.storage.k8s.io/fstype: obsfs
        name: pvc-obs-example
        namespace: default
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 1Gi
        storageClassName: csi-obs
        volumeName: pv-obs-example
      表2 关键参数说明

      参数

      描述

      volumeName

      PV的名称。

      storage

      存储容量,单位为Gi。此处配置为固定值1Gi,必须和已有pv的storage大小保持一致。

      storageClassName

      k8s storage class名称;需配置为"csi-obs”。

      everest.io/obs-volume-type

      obs存储类型;当前支持标准(STANDARD)和低频(WARM)两种存储类型。

      csi.storage.k8s.io/fstype

      指定文件类型,支持“obsfs”与“s3fs”。取值为s3fs时说明使用的obs对象桶,配套使用s3fs挂载;取值为obsfs时说明使用的是obs并行文件系统,配套使用obsfs挂载。

  4. 创建PV。

    kubectl create -f pv-obs-example.yaml

  5. 创建PVC。

    kubectl create -f pvc-obs-example.yaml

分享:

    相关文档

    相关产品