在每個 K8s Worker 節(jié)點上都運行著一個 Kubelet 進程,用來處理 Master 節(jié)點下發(fā)到本節(jié)點的任務(wù),管理 Pod 和其中的容器。Kubelet 會在 API Server 上注冊節(jié)點信息,定期向 Master 匯報節(jié)點資源使用情況?梢园 Kubelet 理解成一個 agent,是 Node 上的 Pod 管家。vSphere Cloud Provider 是 K8s 的一個插件,它為 K8s Pod 提供了 vSphere 的存儲服務(wù)。
在 K8s 使用持久性存儲需要以下幾個步驟:
創(chuàng)建存儲類:
指定存儲的調(diào)配類型,vSphere 在創(chuàng)建虛機時虛擬存儲時有 Think 和 Thick 種格式可以選擇:
- Thin Provision:一開始的時候并不分配空間,根據(jù)虛擬硬盤的實際使用來分配空間;
- Thick Provision :一開始就分配足額空間給虛擬硬盤,Thick 要比 Thin 模式性能更好。
如果底層存儲用的是 vSAN 的話,還看可以指定條帶數(shù)、IO 訪問限制、緩存大小等屬性。
創(chuàng)建持久性卷聲明 (Persistent Volume Claim)
持久性卷 (Persistent Volume) 是一種 K8s 對象,它對應(yīng)于 vSphere 環(huán)境中的 vmdk 存儲對象。持久性卷是獨立于 Pod 存在的。在持久性卷聲明中可以進一步定義容量大小、訪問模式 (是只讀還是可寫) 等等。PKS 支持兩種創(chuàng)建模式:
- 動態(tài)卷 (Dynamic Volume):管理員在創(chuàng)建持久卷聲明時 PKS 會自動創(chuàng)建對應(yīng)的 vmdisk 并且將它關(guān)聯(lián)到持久卷上;
- 靜態(tài)卷 (Static Volume):vSphere 系統(tǒng)管理員一開始就建好一組 vmdisk,PKS 管理員創(chuàng)建持久卷聲明并關(guān)聯(lián)相應(yīng)的 vmdisk。
我們可以把 Persistent Volume Claim 理解成把邏輯持久卷和物理存儲關(guān)聯(lián)起來的一種機制。
在 Pod 中裝載和使用持久卷
開發(fā)人員在 Pod 的 YAML 描述文件中定義持久卷的裝載點 (Mount Point) ,PKS 在啟動 Pod 時就會自動 Mount 這個持久卷供 Pod 使用。