本页面介绍了如何将 vSphere 容器存储接口 (CSI) 存储驱动程序与 GKE On-Prem 集群配合使用。
概览
从 GKE On-Prem 版本 1.5 开始,vSphere CSI 驱动程序会自动部署到 GKE On-Prem 集群中。如需了解其他 CSI 驱动程序,请参阅安装 CSI 驱动程序。
准备工作
请确保满足以下前提条件:
vSphere 服务器 API 版本 6.7 更新 3 或更高版本。
vSphere
cns.searchable
用户帐号权限。
确认驱动程序可用性
当您的用户集群中安装了 vSphere CSI 驱动程序时,系统会创建名为 standard-rwo
的 StorageClass。如需检查是否在所有节点上都提供了驱动程序,请运行以下命令:
kubectl get csinode -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"
您会看到以下输出内容:
NAME DRIVERS node-0 csi.vsphere.vmware.com node-1 csi.vsphere.vmware.com node-2 csi.vsphere.vmware.com
预配卷
如需使用 vSphere CSI 驱动程序预配卷,请将 PersistentVolumeClaim 的 storageClassName
字段设置为 standard-rwo
。
设置默认存储类别
要将 standard-rwo
设为默认存储类别,请参阅默认存储类别。
创建其他 StorageClass
您可以使用 datastoreurl
或 storagepolicyname
参数在集群中创建其他 vSphere CSI StorageClasses。
以下示例使用 storagepolicyname
参数:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gold parameters: csi.storage.k8s.io/fstype: ext4 storagepolicyname: "Gold Policy" provisioner: csi.vsphere.vmware.com
要查找 datastoreurl
参数的正确值,请运行以下命令:
govc datastore.info DATASTORE_NAME
其中,DATASTORE_NAME 是您的 vSphere 数据存储区的名称。
使用 datastoreurl
的输出中的 URL 值。输出示例如下所示:
Name: DATASTORE_NAME Path: /DATACENTER_NAME/datastore/DATASTORE_NAME Type: VMFS URL: ds:///vmfs/volumes/5d864fa0-7f2184d4-8eb4-3cfdfe0ce9a0/ Capacity: 20479.8 GB Free: 10066.9 GB
卷清理
当您删除用户集群时,系统不会删除由 vSphere CSI 驱动程序预配的卷。在删除集群之前,您应该先删除所有 PVC 和 StatefulSet。要删除卷,请运行以下命令:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
其中,MY_NAMESPACE 是您的 Kubernetes 命名空间。
如果您删除了用户集群而未删除其卷,则可以在 vCenter 中找到这些卷:
在 vCenter 中,选择一个数据存储区。
导航到监控 > 云原生存储 > 容器卷。
Kubernetes 集群名称显示在每个卷的详细信息部分。
停用 vSphere CSI 驱动程序
如需移除 vSphere CSI 支持,请在您的用户集群配置中添加以下内容:
# (Optional) Storage specification for the cluster storage: # To disable the vSphere CSI driver, set this to true. The value is set to false by default and # the vSphere CSI driver is enabled by default on vSphere version >= 6.7U3. vSphereCSIDisabled: true