动态存储卷需要您手动创建StorageClass,并在PVC中通过storageClassName来指定期望的云盘类型。
创建指定zoneId的StorageClass
创建延迟绑定的StroageClass
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: alicloud-disk-topology-ssd
provisioner: alicloud/disk
parameters:
type: cloud_ssd
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer
说明
- 如果配置的StorageClass没有
WaitForFirstConsumer
,且没有配置zoneid
,这时创建的PV和Disk-Controller组件所在节点的Zone是一样的。 - 如果配置的StorageClass没有
WaitForFirstConsumer
,但是配置了zoneid
,这时创建的PV会根据zoneid
的配置,轮询使用其中的zoneid
。 - 如果使用WaitForFirstConsumer,会根据消费此PVC的Pod所调度的节点创建云盘,即在Pod调度的可用区创建云盘。
创建PVC
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: disk-ssd
spec:
accessModes:
- ReadWriteOnce
storageClassName: alicloud-disk-ssd-hangzhou-b
resources:
requests:
storage: 20Gi
---
kind: Pod
apiVersion: v1
metadata:
name: disk-pod-ssd
spec:
containers:
- name: disk-pod
image: nginx
volumeMounts:
- name: disk-pvc
mountPath: "/mnt"
restartPolicy: "Never"
volumes:
- name: disk-pvc
persistentVolumeClaim:
claimName: disk-ssd
默认选项:
在多可用区的集群中,需要您手动创建上述StorageClass,这样可以更准确的定义所需要云盘的可用区信息。
集群默认提供了以下几种StorageClass,可以在单可用区类型的集群中使用。
- alicloud-disk-efficiency:高效云盘。
- alicloud-disk-ssd:SSD云盘。
- alicloud-disk-essd:ESSD云盘。
- alicloud-disk-available:提供高可用选项,优先创建SSD云盘;如果SSD云盘售尽,则创建高效云盘。
注意 对于alicloud-disk-controller v1.14.8.44-c23b62c5-aliyun之前的版本,优先创建ESSD云盘;如果ESSD云盘售尽,则创建SSD云盘;如果SSD云盘售尽,则创建高效云盘。
- alicloud-disk-topology:使用延迟绑定的方式创建云盘。
使用云盘创建多实例StatefulSet
使用volumeClaimTemplates的方式来创建,这样会动态创建多个PVC和PV并绑定。
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
name: web
volumeMounts:
- name: disk-ssd
mountPath: /data
volumeClaimTemplates:
- metadata:
name: disk-ssd
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "alicloud-disk-ssd-hangzhou-b"
resources:
requests:
storage: 20Gi
您也可以通过控制台的方式使用动态云盘卷,请参见通过控制台使用动态云盘卷。