您可以使用 Kubernetes 对象针对 GKE on AWS 上运行的工作负载创建永久性存储空间。
在 GKE on AWS 工作负载中使用永久性存储空间
在 GKE on AWS 中,您使用 Kubernetes PersistentVolume (PV)、PersistentVolumeClaim (PVC) 和 StorageClass 资源,向工作负载提供永久性文件和块存储。 您可以使用 VolumeSnapshot 和 VolumeSnapshotClass 资源创建永久性存储的快照。快照存储在您的 AWS 账号中。
StorageClass
集群拥有默认 Kubernetes StorageClass,可在 AWS Elastic Block Storage (EBS) 卷上针对工作负载动态预配有状态存储空间。您还可以使用自定义 StorageClass 预配其他类型的卷。以下部分介绍了这些选项。
VolumeSnapshotClass
集群具有默认 Kubernetes VolumeSnapshotClass,可在 EBS 卷上创建有状态存储空间的快照。
配置集群存储
如果要预配非默认 StorageClass 的存储卷,您可以在集群中创建使用其他参数或其他存储驱动程序的自定义 StorageClass。然后,您可以设置默认 StorageClass,或将工作负载配置为使用 StorageClass。例如,您可以使用 StatefulSet 中的 StorageClass 引用来设置特定的 StorageClass 名称。
使用卷快照
您可以使用 VolumeSnapshot 资源创建存储卷的快照。然后,您可以从这些快照预配新的永久性卷。如需了解详情,请参阅截取 PersistentVolume 快照。
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
(默认):用于预配 EBSgp2
卷。premium-rwo
:用于预配 EBSio1
卷。
EBS 卷支持 Kubernetes ReadWriteOnce 访问模式。
预先存在的 EBS 卷
您可以在 GKE on AWS 工作负载中预配现有的 EBS 卷。如需查看有关如何在 GKE on AWS 中使用 EBS 卷的示例,请参阅导入预先存在的 EBS 卷。
Elastic File System (EFS)
GKE on 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。
特定存储驱动程序
以下卷驱动程序可以与 GKE on AWS 配合使用。
FSx for Lustre (FSX)
GKE on AWS 不直接管理 FSx 卷。您可以手动安装 aws-fsx-csi-driver,但 Google 无法提供支持。
Kubernetes 树内卷插件
Kubernetes 附带树内(内置)卷插件。支持的树内驱动程序包含以下项:
- configMap
- emptyDir
- hostPath
- nfs
- projected
- secrets
后续步骤
- 了解如何将 StorageClass 与工作负载配合使用。
- 使用预先存在的 EBS 卷。
- 了解 GKE 中的永久性卷和动态预配。
- 了解如何截取 PersistentVolume 快照。
- 阅读 Kubernetes 存储类别文档。
- 阅读 Container Storage Interface (CSI) for Kubernetes 正式版的版本公告。