使用 vSphere Container Storage 介面驅動程式

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

總覽

安裝適用於 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」 >「容器磁碟區」

  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

後續步驟