(kubectl) Creating a PV from an Existing OBS Bucket
Scenario
CCE allows you to use an existing OBS bucket to create a PersistentVolume (PV). You can create a PersistentVolumeClaim (PVC) and bind it to the PV.
Notes and Constraints
The following configuration example applies to clusters of Kubernetes 1.13 or earlier.
Procedure
- Log in to the OBS console, create an OBS bucket, and record the bucket name and storage class.
- Use kubectl to connect to the cluster. For details, see Connecting to a Cluster Using kubectl.
- Create two YAML files for creating the PV and PVC. Assume that the file names are pv-obs-example.yaml and pvc-obs-example.yaml.
touch pv-obs-example.yaml pvc-obs-example.yaml
Kubernetes Cluster Version
Description
YAML Example
1.11 ≤ K8s version ≤ 1.13
Clusters from v1.11 to v1.13
K8s version = 1.9
Clusters of v1.9
Clusters from v1.11 to v1.13
- Example YAML file for the PV:
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
Table 1 Key parameters Parameter
Description
driver
Storage driver used to mount the volume. Set the driver to huawei.com/fuxiobs for the OBS volume.
storage_class
Storage class, including STANDARD (standard bucket) and STANDARD_IA (infrequent access bucket).
region
Region where the cluster is located.
volumeID
OBS bucket name.
To obtain the name, log in to the CCE console, choose Resource Management > Storage, click the PVC name in the OBS tab page, and copy the PV name on the PV Details tab page.
storage
Storage capacity, in Gi. The value is fixed at 1Gi.
storageClassName
Storage class supported by OBS, including obs-standard (standard bucket) and obs-standard-ia (infrequent access bucket).
spec.claimRef.apiVersion
The value is fixed at v1.
spec.claimRef.kind
The value is fixed at PersistentVolumeClaim.
spec.claimRef.name
The value is the same as the name of the PVC created in the next step.
spec.claimRef.namespace
The value is the same as the namespace of the PVC created in the next step.
- Example YAML file for the PVC:
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
Table 2 Key parameters Parameter
Description
volume.beta.kubernetes.io/storage-class
Storage class supported by OBS, including obs-standard and obs-standard-ia.
volume.beta.kubernetes.io/storage-provisioner
Must be set to flexvolume-huawei.com/fuxiobs.
volumeName
Name of the PV.
storage
Storage capacity, in Gi. The value is fixed at 1Gi.
Clusters of v1.9
- Example YAML file for the PV:
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
Table 3 Key parameters Parameter
Description
driver
Storage driver used to mount the volume. Set the driver to huawei.com/fuxiobs for the OBS volume.
storage_class
Storage class, including STANDARD (standard bucket) and STANDARD_IA (infrequent access bucket).
region
Region where the cluster is located.
volumeID
OBS bucket name.
To obtain the name, log in to the CCE console, choose Resource Management > Storage, click the PVC name in the OBS tab page, and copy the PV name on the PV Details tab page.
storage
Storage capacity, in Gi. The value is fixed at 1Gi.
storageClassName
Storage class supported by OBS, including obs-standard (standard bucket) and obs-standard-ia (infrequent access bucket).
- Example YAML file for the PVC:
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
Table 4 Key parameters Parameter
Description
volume.beta.kubernetes.io/storage-class
Storage class supported by OBS, including obs-standard and obs-standard-ia.
volume.beta.kubernetes.io/storage-provisioner
Must be set to flexvolume-huawei.com/fuxiobs.
volumeName
Name of the PV.
storage
Storage capacity, in Gi. The value is fixed at 1Gi.
- Example YAML file for the PV:
- Create a PV.
kubectl create -f pv-obs-example.yaml
- Create a PVC.
kubectl create -f pvc-obs-example.yaml
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot