本页面介绍如何在 GKE 集群上安装 Container Storage Interface (CSI) 存储驱动程序。
CSI 是一种开放式标准 API,可让 Kubernetes 将任意存储系统提供给容器化工作负载。此外,CSI 还支持使用现代存储功能,如调整大小及快照。
默认情况下,GKE on AWS 会使用ebs-csi-driver
预配 EBS 卷。您还可以使用 efs-csi-driver
预配 EFS 卷。
如果要使用其他类型的存储卷,则可以安装 CSI 驱动程序。
安装 CSI 驱动程序后,您需要创建 Kubernetes StorageClass。您可以将 CSI 驱动程序设置为 StorageClass 的预配工具。然后,您可以将 StorageClass 设置为默认值,或将您的工作负载配置为使用 StorageClass。
准备工作
安装供应商的 CSI 驱动程序
存储供应商负责为其 CSI 驱动程序提供安装说明。请参阅 CSI 文档中的 CSI 驱动程序列表。
按照您的 CSI 驱动程序的安装说明操作,然后继续执行此页面上的后续步骤。
Google 不为第三方驱动程序提供支持或说明。请与您的存储供应商联系以获取支持。
验证驱动程序安装
安装 CSI 驱动程序后,您可以通过运行以下命令来验证安装。
kubectl get csinodes \
-o jsonpath='{range .items[*]} {.metadata.name}{": "} {range .spec.drivers[*]} {.name}{"\n"} {end}{end}'
使用 CSI 驱动程序
如需使用 CSI 驱动程序,请执行以下操作:
创建自定义 StorageClass,以在相应的
provisioner
字段中引用驱动程序。如需预配存储空间,您可以执行以下任一操作:
- 在 StatefulSet 的
volumeClaimTemplates
规范中引用 StorageClass。 - 将其设置为集群的默认 StorageClass。
- 在 StatefulSet 的
由 CSI 驱动程序支持的 StorageClass 的注意事项
创建 StorageClass 时,请考虑以下因素:
检查 CSI 驱动程序文档中是否有您提供给 StorageClass 的特定于驱动程序的参数,包括预配工具名称。
您应根据 StorageClass 的属性(例如
fast
或highly-replicated
)为其命名,而不是根据其后面的具体驱动程序或设备的名称。根据 StorageClass 的属性为其命名后,您可以在不同的集群和环境中创建同名的 StorageClass。然后,将工作负载配置为使用相同的 StorageClass。
后续步骤
- 创建一个引用 CSI 驱动程序的 StorageClass。