存储空间

您可以使用 Kubernetes 对象针对 GKE on AWS 上运行的工作负载创建永久性存储空间。

在 GKE on AWS 工作负载中使用永久性存储空间

在 GKE on AWS 中,您使用 Kubernetes PersistentVolume (PV)、PersistentVolumeClaim (PVC) 和 StorageClass 资源,向工作负载提供永久性文件和块存储。对于用户集群 1.17 版及更高版本,您可以使用 VolumeSnapshotVolumeSnapshotClass 资源创建永久性存储的快照。快照存储在您的 AWS 账号中。

StorageClass

用户集群拥有默认 Kubernetes StorageClass,可在 AWS Elastic Block Storage (EBS) 卷上针对工作负载动态预配有状态存储空间。您还可以使用其他 StorageClass 预配其他类型的卷。以下部分介绍了这些选项。

VolumeSnapshotClass

用户集群拥有默认 Kubernetes VolumeSnapshotClass,可在 AWS Elastic Block Storage (EBS) 卷上创建有状态存储空间的快照。

配置集群存储

如果要预配非默认 StorageClass 的存储卷,您可以在集群中创建使用其他参数或其他存储驱动程序的新 StorageClass。然后,您可以将 StorageClass 设置为集群的默认值,或者将工作负载配置为使用 StorageClass。例如,您可以使用 StatefulSet 设置特定的 StorageClass 名称。

使用卷快照

在 Kubernetes 1.17 及更高版本中,您可以使用 VolumeSnapshot 资源创建存储卷的快照。然后,您可以从这些快照预配新的永久性卷。

Elastic Block Storage (EBS)

GKE on AWS 使用 aws-ebs-csi-driver 管理 AWS EBS 卷。

EBS CSI 驱动程序版本与 GKE on AWS 的 Kubernetes 版本相关联。升级用户集群版本时,系统会自动应用新的驱动程序版本。此版本通常是发布 GKE on AWS 版本时可用的最新驱动程序。

默认情况下,预安装了 GKE on AWS 的驱动程序可提供以下 StorageClass:

  • standard-rwo(默认):用于预配 EBS gp2 卷。
  • premium-rwo:用于预配 EBS io1 卷。

EBS 卷支持 Kubernetes ReadWriteOnce 访问模式。

预先存在的 EBS 卷

您可以在 GKE on AWS 工作负载中预配现有的 EBS 卷。如需查看有关如何在 GKE on AWS 中使用 EBS 卷的示例,请参阅导入预先存在的 EBS 卷

Elastic File System (EFS)

GKE on AWS 1.6 及更高版本支持装载现有 AWS EFS 文件系统和接入点。如需了解详情,请参阅使用 EFS

其他存储选项

其他第三方存储系统可以通过第三方容器存储接口 (CSI) 驱动程序(推荐)或树内 Kubernetes 卷插件与 GKE on AWS 配合使用。

CSI 驱动程序

Container Storage Interface (CSI) 是一种开放式标准 API,可让 Kubernetes 将任意存储系统关联至容器化工作负载。您可以在 Kubernetes CSI 开发者文档中找到不全面的 CSI 驱动程序列表。GKE on AWS 支持 CSI v1.x。

如需在集群中使用 CSI 驱动程序,您需要安装存储供应商提供的 CSI 驱动程序。然后,您可以将工作负载配置为使用驱动程序的 StorageClass 或将其设置为默认 StorageClass

特定于 AWS 的存储驱动程序

以下卷驱动程序可以与 GKE on AWS 配合使用。

FSx for Lustre (FSX)

GKE on AWS 不直接管理 FSx 卷。您可以手动安装 aws-fsx-csi-driver,但 Google 无法提供支持。

Kubernetes 树内卷插件

Kubernetes 附带树内(内置)卷插件。支持的树内驱动程序包含以下项:

  • configMap
  • emptyDir
  • hostPath
  • nfs
  • projected
  • Secret

后续步骤