使用 Google Distributed Cloud 軟體 (僅限 VMware) 建立的使用者叢集,會有一或多個 StorageClass 物件,其中一個會指定為預設 StorageClass。本頁面說明如何為使用者叢集設定預設 StorageClass。詳情請參閱「儲存空間」。
本頁面適用於設定及管理儲存空間效能、用量和費用的儲存空間專家。如要進一步瞭解 Google Cloud 內容中提及的常見角色和工作範例,請參閱「常見的 GKE 使用者角色和工作」。
找出預設 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 的儲存空間要求,都會根據您選擇的 StorageClass 執行。本節說明變更預設值的步驟。
部署新的儲存系統
部署新的儲存系統和任何軟體元件,將新的儲存機制與 Kubernetes 叢集整合。例如,您可能需要在叢集中安裝 CSI 驅動程式。
這個步驟會因您使用的儲存空間供應商而異。如果是 CSI 驅動程式,供應商應提供將 CSI 驅動程式部署至 Kubernetes 叢集的指示。CSI 驅動程式的文件也應包含您在 StorageClass 中提供的驅動程式專屬參數,包括佈建工具名稱。
為新設備建立 StorageClass 時,應根據其屬性 (例如「fast」或「highly-replicated」) 命名,而非根據其背後的特定驅動程式或設備名稱。這樣一來,您就能更輕鬆地在各個叢集和環境中,套用一致的儲存空間政策。
從預設 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 資訊清單檔案的路徑。