PKS 為容器應用提供了持久性存儲 (Persistent Volume) 機制,支持在 K8s 集群中部署無狀態 (stateless) 的或有狀態 (stateful) 的應用。
在每個 K8s Worker 節點上都運行著一個 Kubelet 進程,用來處理 Master 節點下發到本節點的任務,管理 Pod 和其中的容器。Kubelet 會在 API Server 上註冊節點信息,定期向 Master 彙報節點資源使用情況。可以把 Kubelet 理解成一個 agent,是 Node 上的 Pod 管家。vSphere Cloud Provider 是 K8s 的一個插件,它為 K8s Pod 提供了 vSphere 的存儲服務。
在 K8s 使用持久性存儲需要以下幾個步驟:
1. 創建存儲類:
指定存儲的調配類型,vSphere 在創建虛機時虛擬存儲時有 Think 和 Thick 種格式可以選擇:
- Thin Provision:一開始的時候並不分配空間,根據虛擬硬碟的實際使用來分配空間;
- Thick Provision :一開始就分配足額空間給虛擬硬碟,Thick 要比 Thin 模式性能更好。
如果底層存儲用的是 vSAN 的話,還看可以指定條帶數、IO 訪問限制、緩存大小等屬性。
2. 創建持久性卷聲明 (Persistent Volume Claim)
持久性卷 (Persistent Volume) 是一種 K8s 對象,它對應於 vSphere 環境中的 vmdk 存儲對象。持久性卷是獨立於 Pod 存在的。在持久性卷聲明中可以進一步定義容量大小、訪問模式 (是只讀還是可寫) 等等。PKS 支持兩種創建模式:
- 動態卷 (Dynamic Volume):管理員在創建持久卷聲明時 PKS 會自動創建對應的 vmdisk 並且將它關聯到持久卷上;
- 靜態卷 (Static Volume):vSphere 系統管理員一開始就建好一組 vmdisk,PKS 管理員創建持久卷聲明並關聯相應的 vmdisk。
我們可以把 Persistent Volume Claim 理解成把邏輯持久卷和物理存儲關聯起來的一種機制。
3. 在 Pod 中裝載和使用持久卷
開發人員在 Pod 的 YAML 描述文件中定義持久卷的裝載點 (Mount Point) ,PKS 在啟動 Pod 時就會自動 Mount 這個持久卷供 Pod 使用。
請大家觀看「PKS 持久性存儲」演示。
Comments
0 Comments have been added so far