本文說明如何搭配使用 vSphere 容器儲存介面 (CSI) 驅動程式與 Google Distributed Cloud。
總覽
安裝適用於 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」 >「容器磁碟區」。
在每個磁碟區的「詳細資料」部分,您可以查看 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