存储类
在 Kubernetes 版本 1.11 之前创建的 Amazon EKS 集群在创建时不会包含任何存储类。您必须为要使用的集群定义存储类,并且应为持久卷声明定义默认存储类。有关更多信息,请参阅 Kubernetes 文档中的存储类
注意
树内 Amazon EBS 存储预配置程序1.23,则您必须先安装 Amazon EBS 驱动程序,然后再更新您的集群。有关更多信息,请参阅Amazon EBS CSI 迁移常见问题。
为 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