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