使用 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 資訊清單檔案的路徑。