使用 vSphere Container Storage 介面驅動程式

本文說明如何搭配 Google Distributed Cloud 使用 vSphere 容器儲存介面 (CSI) 驅動程式。

總覽

安裝 VMware 適用的 Google Distributed Cloud (僅限軟體) 時,系統會自動部署 vSphere CSI 驅動程式。如要瞭解如何使用其他 CSI 驅動程式,請參閱「安裝 CSI 驅動程式」。

vSphere 需求

如要使用 vSphere CSI 驅動程式,您必須具備下列條件:

磁碟區擴充

  • 如要離線擴充磁碟區,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 驅動程式佈建磁碟區,請將 PersistentVolumeClaimstorageClassName 欄位設為 standard-rwo

設定預設儲存空間級別

如要將 standard-rwo 設為預設儲存空間級別,請參閱「預設儲存空間級別」。

使用快照還原磁碟區

請參閱「透過快照還原磁碟區」。

建立其他 StorageClass

您可以使用 datastoreurlstoragepolicyname 參數,在叢集中建立其他 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 使用者介面中找到這些磁碟區:

  1. 選取資料儲存庫。

  2. 依序前往「監控」 >「Cloud Native Storage」 >「Container Volumes」

  3. 在每個磁碟區的「詳細資料」部分,您可以查看 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

後續步驟