Storage Types in IBM Cloud
"ReadWriteOne" is available in Access Modes
Storage cannot be shared
"ReadWriteMany" is available in Access Modes
Storage can be shared when multiple Pods are launched
rating
- bronze~gold: Select Storage Size with fixed IOPS
- custom: Select Storage Size and IOPS according to Size
bronze | silver | gold | custom | |
---|---|---|---|---|
iopsPerGB | 2 | 4 | 10 | |
sizeRange | [20-12000]Gi | [20-12000]Gi | [20-4000]Gi | |
sizeIOPSRange | [20-39]Gi : [100-1000] |
Billing
- monthly or hourly (hourly is recommended when creating ad-hoc tests)
persistentVolume Reclaim Policy value
ibmc-block-{등급} : "delete"
ibmc-block-retain-{등급} : "retain"
Creation Example
ibmc-block-retain-silver
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-myapp annotations: volume.beta.kubernetes.io/storage-class: "ibmc-block-retain-silver" labels: billingType: "monthly" spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi
ibmc-block-retain-custom
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-myapp annotations: volume.beta.kubernetes.io/storage-class: "ibmc-block-retain-custom" labels: billingType: "monthly" spec: accessModes: - ReadWriteOnce # file storage인 경우에는 - ReadWriteMany resources: requests: storage: 20Gi iops: "1000"
Mount the generated PVC to Deployment
apiVersion: apps/v1 kind: Deployment metadata: name: <deployment_name> labels: app: <deployment_label> spec: selector: matchLabels: app: <app_name> template: metadata: labels: app: <app_name> spec: containers: - image: <image_name> name: <container_name> volumeMounts: - name: <volume_name> mountPath: /<file_path> volumes: - name: <volume_name> persistentVolumeClaim: claimName: <pvc_name>
Mount the generated PVC to the StatefulSet
apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: serviceName: "nginx" replicas: 3 podManagementPolicy: "Parallel" selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - nginx topologyKey: failure-domain.beta.kubernetes.io/zone containers: - name: nginx image: k8s.gcr.io/nginx-slim:0.8 ports: - containerPort: 80 name: web volumeMounts: - name: www mountPath: /usr/share/nginx/html - name: wwwww mountPath: /tmp1 volumeClaimTemplates: - metadata: name: myvol1 spec: accessModes: - ReadWriteMany # access mode resources: requests: storage: 20Gi storageClassName: ibmc-file-bronze-delayed - metadata: name: myvol2 spec: accessModes: - ReadWriteMany # access mode resources: requests: storage: 20Gi storageClassName: ibmc-file-bronze-delayed
References
Online consultation
Contact us