存储类
在 Kubernetes 版本 1.11 之前创建的 Amazon EKS 集群在创建时不会包含任何存储类。您必须为要使用的集群定义存储类,并且应为持久卷声明定义默认存储类。有关更多信息,请参阅 Kubernetes 文档中的存储类
本主题使用树内 Amazon EBS 存储预配置程序
为 Amazon EKS 集群创建Amazon存储类
-
确定您的集群已有哪些存储类别。
kubectl get storageclass
输出
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 34m
如果您的集群返回上面的输出,则说明它已在其余步骤中定义了存储类。您可以使用 存储 一章中用于部署任何 CSI 驱动程序的步骤,来定义其他存储类。部署后,您可以将其中一个存储类设置为默认存储类。
-
为存储类创建Amazon存储类清单文件。下面的
gp2-storage-class.yaml
示例定义一个名为gp2
的存储类,该存储类使用 Amazon EBSgp2
卷类型。有关Amazon存储类的可用选项的更多信息,请参阅 Kubernetes 文档中的 Amazon EBS
。 kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: gp2 annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: kubernetes.io/aws-ebs parameters: type: gp2 fsType: ext4
-
使用
kubectl
从清单文件创建存储类。kubectl create -f gp2-storage-class.yaml
输出:
storageclass "gp2" created
定义默认存储类
-
列出集群的现有存储类。必须先定义存储类,然后才能将它设置为默认存储类。
kubectl get storageclass
输出:
NAME PROVISIONER AGE gp2 kubernetes.io/aws-ebs 8m
-
选择一个存储类并通过设置
storageclass.kubernetes.io/is-default-class=true
注释来将该存储类设置为默认存储类。kubectl annotate storageclass gp2 storageclass.kubernetes.io/is-default-class=true
输出:
storageclass "gp2" patched
-
确认存储类现已设置为默认存储类。
kubectl get storageclass
输出:
gp2 (default) kubernetes.io/aws-ebs 12m