如何在Kubernetes中創(chuàng)建HostPath持久卷?
譯文【51CTO.com快譯】
您可能知道Pod中的數(shù)據(jù)在Pod的整個生命周期過程中一直存在。如果Pod消失,屬于該Pod的所有數(shù)據(jù)也隨之消失。因此,如果您希望在Pod的生命周期結(jié)束后保留數(shù)據(jù),Kubernetes中就要有所謂的持久卷。
不妨學(xué)習(xí)如何創(chuàng)建HostPath持久卷,這很容易上手。同時了解有關(guān)持卷的基礎(chǔ)知識。
就不同供應(yīng)商而言,kubernetes中可供使用的持久卷有以下類型。
- GCEPersistentDisk
 - AWSElasticBlockStore
 - AzureFile
 - AzureDisk
 - CSI
 - FC(光纖通道)
 - FlexVolume
 - Flocker
 - NFS
 - iSCSI
 - RBD(Ceph Block Device)
 - CephFS
 - Cinder(OpenStack塊存儲)
 - Glusterfs
 - VsphereVolume
 - Quobyte Volumes
 - HostPath(僅用于單節(jié)點測試——不以任何方式支持本地存儲,無法在多節(jié)點集群中運行)
 - Portworx Volumes
 - ScaleIO Volumes
 - StorageOS
 
如您所見,就HostPath而言,應(yīng)僅將其用于測試目的。它也不支持多節(jié)點集群。如果您想了解有關(guān)持久卷的更多信息,可以點擊該鏈接(https://kubernetes.io/docs/concepts/storage/persistent-volumes/)。
持久卷的基本過程如下:
- K8s管理員在集群中創(chuàng)建持久卷。
 - 用戶一旦聲明其狀態(tài)變?yōu)?ldquo;Bound”,便使用“持久卷聲明”對其進行聲明。
 - 然后Pod使用該卷存儲將在Pod的生命周期結(jié)束后持續(xù)存在的數(shù)據(jù)。
 
理論方面講得夠多了,不妨說說技術(shù)步驟:
- 創(chuàng)建持久卷
 
在該步驟中,我們使用以下yaml清單文件來實現(xiàn)同樣的目的。
圖1
如上述定義文件顯示,其存儲大小是1GB。路徑是“/tmp/kube”。不妨創(chuàng)建PV,如下所示:
圖2
使用以下命令,再次核查PV和持久卷聲明:
圖3
如您所見,PV已創(chuàng)建,其狀態(tài)為Available;由于我們未指定重新聲明策略,使用默認值“Retain”,這意味著即使pvc(持久卷聲明)被刪除,PV和數(shù)據(jù)也不會自動被刪除。我們會對此進行測試。
- 創(chuàng)建持久卷聲明
 
為了使用PV,我們需要創(chuàng)建持久卷聲明或PVC來使用它。以下是同樣的yaml清單文件。
圖4
上述定義中有必要指出,聲明僅針對100mb(>= size of PV),另外Access模式是“ReadWriteOnce”,這與PV的模式一樣。因此,我們能夠創(chuàng)建PVC,如下所示:
圖5
檢查pv和pvc的狀態(tài)。
圖6
您會看到,pv的狀態(tài)已從之前的Available變成了Bound。
- 創(chuàng)建Pod,把該PV作為里面的掛載點來使用。
 
圖7
如Pod定義文件中所述,它會在Pod里面創(chuàng)建掛載點/tmp/mydata。不妨使用上述定義文件創(chuàng)建Pod。
圖8
檢查狀態(tài),并檢查Pod:
圖9
在描述輸出中,您可以看到/tmp/mydata卷是使用來自聲明pvc-hostpath的host-volume創(chuàng)建的。另外,Pod是在節(jié)點“kworker01”上按計劃/創(chuàng)建的。
不妨登錄進入到Pod創(chuàng)建示例文件。為了演示Pod消失后數(shù)據(jù)的生命周期:
圖10
在上述演示中,我們在/tmp/mydata里面創(chuàng)建了“Hello.txt”。現(xiàn)在不妨刪除Pod。
圖11
Pod已成功刪除,不妨登錄入節(jié)點“kworker01”,Pod之前已按計劃創(chuàng)建,檢查數(shù)據(jù)在Pod刪除后是否持久存在。
圖12
您可以看到,即便Pod已消失,我們的文件“Hello.txt”仍駐留在節(jié)點上。
原文標(biāo)題:How to create HostPath persistent volume in Kubernetes
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】



























 
 
 









 
 
 
 