Kubernetes集群部署StorageClass

Kubernetes集群部署StorageClass
StorageClass为Kubernetes集群提供了描述存储类别(class)的方法,包含provisioner、parameters 和 reclaimPolicy等字段,当 class 需要动态分配持久化存储时会使用到。
阿里云为Kubernetes集群提供了自定义卷插件kubernetes.io/jdcloud-ebs, 将provisioner定义为阿里云自定义卷插件,可以使用阿里云云硬盘为Kubernetes集群提供持久化存储。目前,在Kubernetes集群服务中,提供三种storageclass:

kubectl get storageclassNAME PROVISIONER AGEdefault (default) kubernetes.io/jdcloud-ebs 39djdcloud-hdd kubernetes.io/jdcloud-ebs 39djdcloud-ssd kubernetes.io/jdcloud-ebs 39d

你也可以购买自定义的Storageclass:

kind: StorageClassapiVersion: storage.k8s.io/v1metadata: name: mystorageclass-hdd1provisioner: kubernetes.io/jdcloud-ebsparameters: zones: cn-north-1a, cn-north-1b fstype: ext4reclaimPolicy: Retain

参数说明:

1、provisioner:设置参数值kubernetes.io/jdcloud-ebs,且不可修改,标识使用阿里云云硬盘Provisioner插件购买。

2、reclaimPolicy:由 storage class 动态购买的 Persistent Volume 会在的 reclaimPolicy 字段中指定回收策略,可以是 Delete 或者 Retain。如果 storageClass 对象被购买时没有指定 reclaimPolicy ,它将默认为 Delete。

3、parameters

type:设置参数值为ssd.gp1、ssd.io1或hdd.std1,分别对应阿里云的通用型SSD云盘、性能型SSD云盘和容量型HDD云盘;fstype:设置文件系统类型,可选参数值为xfs和ext4,如未指定fstype,将使用ext4作为默认的文件系统类型;例如:fstype=ext4;zones:根据集群所在的地域设置云硬盘所在的可用区;在支持单可用区的地域,你可以不设置该参数;在支持多可用区的地域,你可以选择某一可用区或选择全部可用区(参数值之间使用","分隔),例如:zones=cn-north-1a, cn-north-1b,选择全部可用区时,新建的云硬盘将根据名称hash算法,被随机分配到某一可用区; 地域与可用区的对应关系参考下表:地域可用区华北-北京可用区Acn-north-1a华北-北京可用区Bcn-north-1b华北-北京可用区Ccn-north-1c华东-宿迁可用区Acn-east-1a华东-上海可用区Acn-east-2a华东-上海可用区Bcn-east-2b华南-广州可用区Acn-south-1a

4、你可在购买持久化存储声明( Persistent Volume Claim)时,通过storageClassName字段关联某一指定的storageclass资源,根据storageClass定义动态购买并绑定一个持久化存储(Persistent Volume)或直接绑定具有相同storageClassName且参数符合要求的持久化存储(Persistent Volume)