本文說明如何搭配 Google Distributed Cloud 使用 vSphere 容器儲存介面 (CSI) 驅動程式。
總覽
安裝 VMware 適用的 Google Distributed Cloud (僅限軟體) 時,系統會自動部署 vSphere CSI 驅動程式。如要瞭解如何使用其他 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 StorageClass。
以下範例使用 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 使用者介面中找到這些磁碟區:
選取資料儲存庫。
依序前往「監控」 >「Cloud Native Storage」 >「Container Volumes」。
在每個磁碟區的「詳細資料」部分,您可以查看 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