Using PersistentVolumeClaim to Apply for Persistent Storage
CCI supports the following persistent storage services in containers:
- Elastic Volume Service (EVS) is a block storage service that provides three specifications: common I/O (previous-generation), high I/O (SAS), and ultra-high I/O (SSD).
- SFS Turbo is expandable to 320 TB, and provides fully hosted shared file storage. It features high availability and durability, and supports massive quantities of small files and applications requiring low latency and high IOPS. You can use SFS Turbo in high-traffic websites, log storage, compression/decompression, DevOps, enterprise OA, and containerized applications.
- Object Storage Service (OBS) is an object-based storage service, and provides massive, secure, highly reliable, and low-cost data storage.
EVS need to be mounted before being used. The following describes how to use EVS.
PersistentVolumeClaim (PVC)
Kubernetes provides PVC to apply for persistent storage. The PVC allows you to specify the type and capacity of storage without concerning about how to create and release underlying storage resources.
In practice, you can associate a PVC with the volume in the pod and use the persistent storage through the PVC, as shown in Figure 1.
Creating a PVC
- Creating a PVC to apply for a 100-GB SAS EVS disk
To create an encrypted EVS volume, add the paas.storage.io/cryptKeyId field in metadata.annotations.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-evs namespace: namespaces-test annotations: { paas.storage.io/cryptKeyId: ee9b610c-e356-11e9-aadc-d0efc1b3bb6b } spec: accessModes: - ReadWriteMany resources: requests: storage: 100Gi storageClassName: sas
accessModes indicates the volume access modes. The following three modes are supported:- ReadWriteOnce: A volume can be mounted to a single node for reading and writing.
- ReadOnlyMany: A volume can be mounted to multiple nodes for reading.
- ReadWriteMany: A volume can be mounted to multiple nodes for reading and writing.
storageClassName indicates the applied storage class. Currently, the following 3 storage classes are supported:
- sas: SAS (high I/O) EVS disk
- ssd: SSD (ultra-high I/O) EVS disk
- nfs-rw: SFS file storage of the standard file protocol
Using a PVC
After applying for storage resources using a PVC, you can use a volume in the pod to associate the PVC and mount the volume to containers.
The following example shows how to use a PVC in a pod. A volume named pvc-test-example is defined and mounted to the /tmp/volume0 directory of the container. In this way, the data written to /tmp is written to the PVC named pvc-test.
- Writing data to the applied SAS EVS disk
apiVersion: v1 kind: Pod metadata: name: nginx labels: app: nginx spec: containers: - image: nginx:latest name: container-0 resources: limits: cpu: 500m memory: 1024Mi requests: cpu: 500m memory: 1024Mi volumeMounts: - mountPath: "/tmp/volume0" # Mount the PVC to the /tmp/volume0 directory of the container. name: pvc-test-example # Volume name. volumes: # Define a volume, and associate it with the PVC. - name: pvc-test-example persistentVolumeClaim: claimName: pvc-test # PVC name. imagePullSecrets: - name: imagepull-secret
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