本文档介绍了如何将 vSphere 容器存储接口 (CSI) 驱动程序与 Google Distributed Cloud 搭配使用。
概览
vSphere CSI 驱动程序会自动部署在 GKE on VMware 中。如需了解使用其他 CSI 驱动程序,请参阅安装 CSI 驱动程序。
vSphere 要求
如需使用 vSphere CSI 驱动程序,您必须具有:
基于 Linux 的受支持的 vCenter Server 版本
卷扩展
离线卷扩展要求 vCenter Server 和 ESXi 为版本 7.0 Update 1 或更高版本
在线卷扩展要求 vCenter Server 和 ESXi 为版本 7.0 Update 2 或更高版本。
卷快照
卷快照要求 vCenter Server 和 ESXi 都是 7.0 Update 3 或更高版本。
Cns.Searchable
您的 vCenter 用户帐号必须具有对根 vCenter 对象的 Cns.Searchable 权限。
如果您不确定您的账户是否符合 CSI 前提条件,请先运行 gkectl diagnose cluster
,然后再部署任何 CSI 工作负载。
验证是否已安装驱动程序
当您的用户集群中安装了 vSphere CSI 驱动程序时,系统会创建名为 standard-rwo
的 StorageClass。
列出 StorageClass 对象:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
将 CLUSTER_KUBECONFIG 替换为集群 kubeconfig 文件的路径。
验证输出中出现 standard-rwo
。例如:
standard kubernetes.io/vsphere-volume Delete Immediate false 33m standard-rwo (default) csi.vsphere.vmware.com Delete Immediate true 32m
验证 vSphere CSI 驱动程序已安装:
kubectl --kubeconfig CLUSTER_KUBECONFIG 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 和 StatefulSets。要删除卷,请运行以下命令:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
将 MY_NAMESPACE 替换为您的 Kubernetes 命名空间。
如果您删除了用户集群而未删除其卷,则可以在 vSphere 界面中找到这些卷:
选择数据存储区。
导航到监控 > 云原生存储 > 容器卷。
在每个卷的详细信息部分中,您可以看到 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