使用kubectl对接已有对象存储
操作场景
CCE支持使用已有的对象存储来创建PersistentVolume,并通过创建对应PersistentVolumeClaim绑定当前PersistentVolume使用。
约束与限制
如下配置示例适用于Kubernetes 1.13及以下版本的集群。
操作步骤
- 登录OBS控制台,创建对象存储桶,记录桶名称和存储类型。
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 新建两个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版本集群
K8s version = 1.9
1.9版本集群
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。
- PV yaml文件配置示例:
- 创建PV。
kubectl create -f pv-obs-example.yaml
- 创建PVC。
kubectl create -f pvc-obs-example.yaml