StorageClass为Kubernetes集群提供了描述存储类别(class)的方法,包含provisioner、parameters 和 reclaimPolicy等字段,当 class 需要动态分配持久化存储时会使用到。
京东云为Kubernetes集群提供了自定义卷插件kubernetes.io/jdcloud-ebs, 将provisioner定义为京东云自定义卷插件,可以使用京东云云硬盘为Kubernetes集群提供持久化存储。目前,在Kubernetes集群服务中,提供三种storageclass:
kubectl get storageclass NAME PROVISIONER AGE default (default) kubernetes.io/jdcloud-ebs 39d jdcloud-hdd kubernetes.io/jdcloud-ebs 39d jdcloud-ssd kubernetes.io/jdcloud-ebs 39d
您也可以创建自定义的Storageclass:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: mystorageclass-hdd1 provisioner: kubernetes.io/jdcloud-ebs parameters: zones: cn-north-1a, cn-north-1b fstype: ext4 reclaimPolicy: Retain
参数说明:
1、provisioner:设置参数值kubernetes.io/jdcloud-ebs,且不可修改,标识使用京东云云硬盘Provisioner插件创建。
2、reclaimPolicy:由 storage class 动态创建的 Persistent Volume 会在的 reclaimPolicy 字段中指定回收策略,可以是 Delete 或者 Retain。如果 storageClass 对象被创建时没有指定 reclaimPolicy ,它将默认为 Delete。
3、parameters
地域 | 可用区 |
---|---|
华北-北京 | 可用区A cn-north-1a |
华北-北京 | 可用区B cn-north-1b |
华北-北京 | 可用区C cn-north-1c |
华东-宿迁 | 可用区A cn-east-1a |
华东-上海 | 可用区A cn-east-2a |
华东-上海 | 可用区B cn-east-2b |
华南-广州 | 可用区A cn-south-1a |
4、您可在创建持久化存储声明( Persistent Volume Claim)时,通过storageClassName字段关联某一指定的storageclass资源,根据storageClass定义动态创建并绑定一个持久化存储(Persistent Volume)或直接绑定具有相同storageClassName且参数符合要求的持久化存储(Persistent Volume);更多详情参考部署持久化存储 ;
5、更多storageClass参数说明,参考Kubernetes 参数说明文档。