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: 20Giibmc-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-delayedReferences
Online consultation
Contact us