存储类 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

存储类

在 Kubernetes 版本 1.11 之前创建的 Amazon EKS 集群在创建时不会包含任何存储类。您必须为要使用的集群定义存储类,并且应为持久卷声明定义默认存储类。有关更多信息,请参阅 Kubernetes 文档中的存储类

注意

本主题使用树内 Amazon EBS 存储预配置程序。现有树内 Amazon EBS 插件仍受支持,但通过使用 CSI 驱动程序,您可以从 Kubernetes 上游发行周期与 CSI 驱动程序发行周期的分离中获益。最终将弃用树内插件,改为使用 CSI 驱动程序。但是,Fargate 不支持 CSI 驱动程序。

为 Amazon EKS 集群创建Amazon存储类

  1. 确定您的集群已有哪些存储类别。

    kubectl get storageclass

    输出

    NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE gp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 34m

    如果您的集群返回上面的输出,则说明它已在其余步骤中定义了存储类。您可以使用 存储 一章中用于部署任何 CSI 驱动程序的步骤,来定义其他存储类。部署后,您可以将其中一个存储类设置为默认存储类。

  2. 为存储类创建Amazon存储类清单文件。下面的 gp2-storage-class.yaml 示例定义一个名为 gp2 的存储类,该存储类使用 Amazon EBS gp2 卷类型。

    有关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
  3. 使用 kubectl 从清单文件创建存储类。

    kubectl create -f gp2-storage-class.yaml

    输出:

    storageclass "gp2" created

定义默认存储类

  1. 列出集群的现有存储类。必须先定义存储类,然后才能将它设置为默认存储类。

    kubectl get storageclass

    输出:

    NAME PROVISIONER AGE gp2 kubernetes.io/aws-ebs 8m
  2. 选择一个存储类并通过设置 storageclass.kubernetes.io/is-default-class=true 注释来将该存储类设置为默认存储类。

    kubectl annotate storageclass gp2 storageclass.kubernetes.io/is-default-class=true

    输出:

    storageclass "gp2" patched
  3. 确认存储类现已设置为默认存储类。

    kubectl get storageclass

    输出:

    gp2 (default) kubernetes.io/aws-ebs 12m