存储概览
您可以使用 Kubernetes 对象针对 GKE on Azure 上运行的工作负载创建永久性存储空间。
控制层面存储空间
在创建集群时,GKE on Azure 会为控制平面和 etcd 卷预配高级 SSD LRS 磁盘。
在 GKE on Azure 工作负载中使用永久性存储
在 GKE on Azure 中,您使用 Kubernetes PersistentVolume (PV)、PersistentVolumeClaim (PVC) 和 StorageClass 资源,向工作负载提供永久性文件和块存储。您可以使用 VolumeSnapshot 和 VolumeSnapshotClass 资源创建永久性存储的快照。快照存储在您的 Azure 账号中。
StorageClass
集群有一个默认 Kubernetes StorageClass,用于为 Azure 磁盘存储 (AzureDisk) 卷上的工作负载动态预配有状态存储空间。您还可以使用其他 StorageClass 预配其他类型的卷。以下部分介绍了这些选项。
Azure 存储账号
创建集群时,GKE on Azure 会自动创建 Azure 存储账号。如果您想使用特定存储类别账号,请创建自定义存储类别。
配置集群存储
如果要预配非默认 StorageClass 的存储卷,您可以在集群中创建使用其他参数或其他存储驱动程序的新 StorageClass。然后,您可以将 StorageClass 设置为集群的默认值,或者将工作负载配置为使用 StorageClass。例如,您可以使用 StatefulSet 设置特定的 StorageClass 名称。
Azure 磁盘存储 (AzureDisk)
GKE on Azure 使用 azuredisk-csi-driver
管理 Azure 磁盘卷。
CSI 驱动程序版本与 GKE on Azure 的 Kubernetes 版本相关联。升级集群版本时,GKE on Azure 会自动更新驱动程序版本。此版本通常是发布 GKE on Azure 版本时可用的最新驱动程序。不支持旧的 Kubernetes kubernetes.io/azure-disk
卷类型。
默认情况下,预安装了 GKE on Azure 的驱动程序可提供以下 StorageClass:
standard-rwo
(默认):用于通过 LRS 预配标准 SSD Azure 磁盘premium-rwo
:用于通过 LRS 预配高级 SSD Azure 磁盘
Azure 磁盘卷支持 Kubernetes ReadWriteOnce 访问模式。
卷快照
您可以使用 VolumeSnapshot 资源创建存储卷的快照。然后,您可以从这些快照预配新的永久性卷。
卷克隆
您可以使用 CSI 卷克隆来克隆现有的 Azure 磁盘卷。如需了解详情,请参阅卷克隆示例。
调整卷大小
您可以使用卷调整大小来调整未挂接的 Azure 磁盘卷的大小。如需了解详情,请参阅卷大小调整示例。不支持在挂接和装载卷时调整大小。
Azure 共享磁盘
对于旨在协调对共享原始块磁盘的写入操作的工作负载,GKE on Azure 支持 Azure 共享磁盘。如需了解详情,请参阅 Azure 磁盘 CSI 文档中的共享磁盘(多节点读写)。
Azure 文件存储 (AzureFile)
GKE on Azure 使用 azurefile-csi-driver
管理 Azure 文件卷。
CSI 驱动程序版本与 GKE on Azure 的 Kubernetes 版本相关联。升级集群版本时,系统会自动应用新的驱动程序版本。此版本通常是发布 GKE on Azure 版本时可用的最新驱动程序。不支持旧的 Kubernetes kubernetes.io/azure-file
卷类型。
默认情况下,预安装了 GKE on Azure 的驱动程序可提供以下 StorageClass:
Azure 文件卷使用 Kubernetes ReadWriteMany 访问模式。
卷快照
您可以使用 VolumeSnapshot 资源创建 Azure 文件卷的快照。如需了解详情,请参阅 Azure 文件快照功能文档。要恢复快照,请使用 Azure 门户。如需了解详情,请参阅 Azure 文件共享快照概览。
调整卷大小
您可以使用卷大小调整 Azure 文件卷的大小。如需了解详情,请参阅卷大小调整示例。
其他存储驱动程序
其他第三方存储系统可以通过第三方 Container Storage Interface (CSI) 驱动程序(推荐)或树内 Kubernetes 卷插件与 GKE on Azure 配合使用。
CSI 驱动程序
Container Storage Interface (CSI) 是一种开放式标准 API,可让 Kubernetes 将任意存储系统关联至容器化工作负载。您可以在 Kubernetes CSI 开发者文档中找到不全面的 CSI 驱动程序列表。GKE on Azure 支持 CSI v1.x。
如需在集群中使用 CSI 驱动程序,您需要安装存储供应商提供的 CSI 驱动程序。然后,您可以将工作负载配置为使用驱动程序的 StorageClass 或将其设置为默认 StorageClass。
Azure 专用的存储驱动程序
以下卷驱动程序可以与 GKE on Azure 配合使用:
GKE on Azure 不直接管理 Azure Blob 存储。您可以手动安装 blob-csi-driver
CSI 驱动程序,但 Google 无法提供支持。
Kubernetes 树内卷插件
Kubernetes 附带树内(内置)卷插件。支持的树内驱动程序包含以下项:
- configMap
- emptyDir
- hostPath
- nfs
- projected
- Secret
后续步骤
- 了解如何将 StorageClass 与工作负载配合使用。
- 将预先存在的 Azure 磁盘卷导入 GKE on Azure。
- 阅读 Azure Disk CSI 驱动程序或 Azure File CSI 驱动程序的文档。
- 了解 GKE 中的卷快照。
- 阅读 Kubernetes 存储类别文档。
- 阅读 Container Storage Interface 版本公告。