更新时间:2024-08-17 GMT+08:00

使用kubectl对接已有对象存储

操作场景

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

约束与限制

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

操作步骤

  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

    K8s集群版本(K8s version)

    说明

    yaml示例

    1.11 ≤ K8s version ≤ 1.13

    1.11以上及1.13版本集群

    请参见1.11~1.13 yaml文件配置示例

    K8s version = 1.9

    1.9版本集群

    请参见1.9 yaml文件配置示例

    1.11 ≤ K8s version ≤ 1.13(1.11以上及1.13版本集群)

    • PV yaml文件配置示例:
      apiVersion: v1 
      kind: PersistentVolume 
      metadata: 
        name: pv-obs-example 
        annotations:
          pv.kubernetes.io/provisioned-by: flexvolume-huawei.com/fuxiobs
      spec: 
        accessModes: 
        - ReadWriteMany 
        capacity: 
          storage: 1Gi 
        claimRef:
          apiVersion: v1
          kind: PersistentVolumeClaim
          name: pvc-obs-example
          namespace: default
        flexVolume: 
          driver: huawei.com/fuxiobs 
          fsType: obs 
          options: 
            fsType: obs 
            region: ap-southeast-1
            storage_class: STANDARD 
            volumeID: test-obs 
        persistentVolumeReclaimPolicy: Delete 
        storageClassName: obs-standard
      表1 关键参数说明

      参数

      描述

      driver

      挂载依赖的存储驱动,对象存储配置为“huawei.com/fuxiobs”。

      storage_class

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

      region

      集群所在的region。

      volumeID

      对象存储的桶名称。

      获取方法:在CCE控制台,单击左侧栏目树中的“资源管理-存储管理”,在“对象存储卷”页签下单击PVC的名称,在PVC详情页的“PV详情”页签下复制“PV名称”后的内容即可。

      storage

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

      storageClassName

      对象存储支持的存储类型,包括obs-standard(标准)、obs-standard-ia(低频)。

      spec.claimRef.apiVersion

      固定值"v1"。

      spec.claimRef.kind

      固定值"PersistentVolumeClaim"。

      spec.claimRef.name

      与下一步创建的pvc的name一致。

      spec.claimRef.namespace

      与下一步创建的pvc的namespace一致。

    • PVC yaml文件配置示例:
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          volume.beta.kubernetes.io/storage-class: obs-standard
          volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxiobs
        name: pvc-obs-example
        namespace: default
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 1Gi
        volumeName: pv-obs-example
      表2 关键参数说明

      参数

      描述

      volume.beta.kubernetes.io/storage-class

      对象存储支持的存储类型,包括obs-standard、obs-standard-ia。

      volume.beta.kubernetes.io/storage-provisioner

      必须使用flexvolume-huawei.com/fuxiobs。

      volumeName

      PV的名称。

      storage

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

    K8s version = 1.9(1.9版本集群)

    • PV yaml文件配置示例:
      apiVersion: v1 
      kind: PersistentVolume 
      metadata: 
        name: pv-obs-example 
        namespace: default  
      spec: 
        accessModes: 
        - ReadWriteMany 
        capacity: 
          storage: 1Gi 
        flexVolume: 
          driver: huawei.com/fuxiobs 
          fsType: obs 
          options: 
            fsType: obs 
            kubernetes.io/namespace: default 
            region: ap-southeast-1
            storage_class: STANDARD 
            volumeID: test-obs 
        persistentVolumeReclaimPolicy: Delete 
        storageClassName: obs-standard
      表3 关键参数说明

      参数

      描述

      driver

      挂载依赖的存储驱动,对象存储配置为“huawei.com/fuxiobs”。

      storage_class

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

      region

      集群所在的region。

      volumeID

      对象存储的桶名称。

      获取方法:在CCE控制台,单击左侧栏目树中的“资源管理-存储管理”,在“对象存储卷”页签下单击PVC的名称,在PVC详情页的“PV详情”页签下复制“PV名称”后的内容即可。

      storage

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

      storageClassName

      对象存储支持的存储类型,包括obs-standard(标准)、obs-standard-ia(低频)。

    • PVC yaml文件配置示例:
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          volume.beta.kubernetes.io/storage-class: obs-standard
          volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxiobs
        name: pvc-obs-example
        namespace: default
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 1Gi
        volumeName: pv-obs-example
        volumeNamespace: default
      表4 关键参数说明

      参数

      描述

      volume.beta.kubernetes.io/storage-class

      对象存储支持的存储类型,包括obs-standard、obs-standard-ia。

      volume.beta.kubernetes.io/storage-provisioner

      必须使用flexvolume-huawei.com/fuxiobs。

      volumeName

      PV的名称。

      storage

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

  4. 创建PV。

    kubectl create -f pv-obs-example.yaml

  5. 创建PVC。

    kubectl create -f pvc-obs-example.yaml