在 Kubernetes(K8S)中,儲存供應(Storage Class)是用於描述如何配置儲存卷(PersistentVolumes)的一種抽象。它允許使用者請求具有特定特性的儲存而不需要指定具體的儲存後端。以下是 Kubernetes 中所支援的一些儲存供應模式:
-
動態配置(Dynamic Provisioning):
- 動態配置允許使用者基於儲存類來請求儲存卷。當一個 PersistentVolumeClaim (PVC) 被建立並繫結到一個儲存類時,系統會自動建立一個與之匹配的 PersistentVolume (PV)。
- 這種模式提高了儲存的靈活性,並減少了手動管理儲存卷的工作量。
-
靜態配置(Static Provisioning):
- 靜態配置是指管理員預先建立好 PersistentVolumes,並且這些 PVs 必須被手動繫結到 PersistentVolumeClaims 上。
- 這種方式適用於需要對儲存捲進行精細控制的情況。
-
儲存型別(Provisioner):
- 儲存類可以指定一個 provisioner 名稱,這個名稱用來指示 Kubernetes 如何建立 PV。例如,使用 "kubernetes.io/aws-ebs" 表示使用 AWS EBS 作為儲存後端。
- Kubernetes 支援多種 provisioners,包括但不限於 AWS EBS, GCE PD, Azure Disk, Cinder, NFS, iSCSI, Glusterfs, CephFS, etc.
-
訪問模式(AccessModes):
- 儲存類定義了 PVC 可以請求的訪問模式。常見的訪問模式包括:
ReadWriteOnce
(RWO): 卷可以被單個節點以讀寫方式掛載。ReadOnlyMany
(ROX): 卷可以被多個節點以只讀方式掛載。ReadWriteMany
(RWX): 卷可以被多個節點以讀寫方式掛載。
- 不同的儲存後端可能支援不同的訪問模式。
- 儲存類定義了 PVC 可以請求的訪問模式。常見的訪問模式包括:
-
引數(Parameters):
- 儲存類可以透過引數欄位來傳遞給 provisioner 的特定配置選項。這使得使用者能夠定製儲存卷的特性,如效能等級、複製因子等。
-
儲存卷快照(Volume Snapshot):
- Kubernetes 也支援儲存卷快照,允許在不中斷服務的情況下建立持久卷的快照。這通常透過支援快照功能的儲存類來實現。
-
回收策略(Reclaim Policy):
- 儲存類可以指定當 PVC 被刪除時 PV 應該採用的回收策略。預設情況下是
Delete
,意味著當 PVC 被刪除時,PV 也會被刪除。其他選項包括Retain
和Recycle
。
- 儲存類可以指定當 PVC 被刪除時 PV 應該採用的回收策略。預設情況下是
綜上所述,透過上述機制,Kubernetes 提供了一個靈活且強大的儲存管理系統,可以根據應用程式的需求動態地管理和分配儲存資源。