在每個(gè) K8s Worker 節點(diǎn)上都運行著(zhù)一個(gè) Kubelet 進(jìn)程,用來(lái)處理 Master 節點(diǎn)下發(fā)到本節點(diǎn)的任務(wù),管理 Pod 和其中的容器。Kubelet 會(huì )在 API Server 上注冊節點(diǎn)信息,定期向 Master 匯報節點(diǎn)資源使用情況。可以把 Kubelet 理解成一個(gè) agent,是 Node 上的 Pod 管家。vSphere Cloud Provider 是 K8s 的一個(gè)插件,它為 K8s Pod 提供了 vSphere 的存儲服務(wù)。

在 K8s 使用持久性存儲需要以下幾個(gè)步驟:
創(chuàng )建存儲類(lèi):
指定存儲的調配類(lèi)型,vSphere 在創(chuàng )建虛機時(shí)虛擬存儲時(shí)有 Think 和 Thick 種格式可以選擇:
- Thin Provision:一開(kāi)始的時(shí)候并不分配空間,根據虛擬硬盤(pán)的實(shí)際使用來(lái)分配空間;
- Thick Provision :一開(kāi)始就分配足額空間給虛擬硬盤(pán),Thick 要比 Thin 模式性能更好。
如果底層存儲用的是 vSAN 的話(huà),還看可以指定條帶數、IO 訪(fǎng)問(wèn)限制、緩存大小等屬性。
創(chuàng )建持久性卷聲明 (Persistent Volume Claim)
持久性卷 (Persistent Volume) 是一種 K8s 對象,它對應于 vSphere 環(huán)境中的 vmdk 存儲對象。持久性卷是獨立于 Pod 存在的。在持久性卷聲明中可以進(jìn)一步定義容量大小、訪(fǎng)問(wèn)模式 (是只讀還是可寫(xiě)) 等等。PKS 支持兩種創(chuàng )建模式:
- 動(dòng)態(tài)卷 (Dynamic Volume):管理員在創(chuàng )建持久卷聲明時(shí) PKS 會(huì )自動(dòng)創(chuàng )建對應的 vmdisk 并且將它關(guān)聯(lián)到持久卷上;
- 靜態(tài)卷 (Static Volume):vSphere 系統管理員一開(kāi)始就建好一組 vmdisk,PKS 管理員創(chuàng )建持久卷聲明并關(guān)聯(lián)相應的 vmdisk。
我們可以把 Persistent Volume Claim 理解成把邏輯持久卷和物理存儲關(guān)聯(lián)起來(lái)的一種機制。
在 Pod 中裝載和使用持久卷
開(kāi)發(fā)人員在 Pod 的 YAML 描述文件中定義持久卷的裝載點(diǎn) (Mount Point) ,PKS 在啟動(dòng) Pod 時(shí)就會(huì )自動(dòng) Mount 這個(gè)持久卷供 Pod 使用。