設定預設儲存空間級別

使用 VMware 適用的 Google Distributed Cloud (僅限軟體) 建立的使用者叢集,會有一或多個 StorageClass 物件,其中一個會指定為預設 StorageClass。本頁說明如何為使用者叢集設定預設 StorageClass。詳情請參閱「儲存空間」。

本頁面適用於儲存空間專家,他們負責設定及管理儲存空間效能、用量和費用。如要進一步瞭解內容中提及的常見角色和範例工作,請參閱「常見的 GKE 使用者角色和工作」。 Google Cloud

找出預設的 StorageClass

列出所有 StorageClass:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses

輸出內容會顯示預設的 StorageClass。舉例來說,在下列輸出內容中,您可以看到名為 standard-rwo 的 StorageClass 是預設的 StorageClass:

standard                      kubernetes.io/vsphere-volume
standard-rwo (default)        csi.vsphere.vmware.com

要求儲存空間時,您可以指定 StorageClass。如未指定 StorageClass,系統會使用預設的 StorageClass。舉例來說,假設您建立未指定 StorageClass 的 PersistentVolumeClaim,磁碟區控制器會根據預設的 StorageClass 滿足聲明。

變更預設儲存空間級別

叢集管理員可能需要變更預設的儲存空間級別。之後,所有未指定 StorageClass 的儲存空間要求,都會根據您選擇的 StorageClass 處理。本節提供變更預設值的步驟。

部署新的儲存系統

部署新的儲存系統,以及將新儲存機制與 Kubernetes 叢集整合的任何軟體元件。舉例來說,您可能需要在叢集中安裝 CSI 驅動程式

這個步驟取決於您使用的儲存空間供應商。對於 CSI 驅動程式,供應商應提供將 CSI 驅動程式部署至 Kubernetes 叢集的說明。CSI 驅動程式的文件也應包含您在 StorageClass 中提供的驅動程式專屬參數,包括佈建者名稱。

為新設備建立 StorageClass 時,應根據其屬性 (例如「fast」或「highly-replicated」) 命名 StorageClass,而不是根據其背後的特定驅動程式或設備名稱。這樣一來,您就能更輕鬆地在叢集和環境中維持一致的儲存空間政策。

從預設 StorageClass 移除預設註解

在文字編輯器中開啟預設 StorageClass:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] edit storageclass \
    DEFAULT_STORAGE_CLASS

在文字編輯器中,移除 storageclass.kubernetes.io/is-default-class: "true" 註解。關閉文字編輯器。

如要確認註解已移除,請輸入下列指令:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get storageclass \
    DEFAULT_STORAGE_CLASS --output yaml

建立新的 StorageClass

建立新 StorageClass 的資訊清單。 加入 storageclass.kubernetes.io/is-default-class: "true" 註解。 例如:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: my-storage-class
  ...
parameters:
  ...
provisioner: [MY_PROVISIONER]
...

將資訊清單儲存為 YAML 檔案,然後建立新的 StorageClass:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply -f [MANIFEST_FILE]

其中 [MANIFEST_FILE] 是新 StorageClass 資訊清單檔案的路徑。

後續步驟