網站開發(fā)詳細設計文檔十句經典廣告語
容器內的目錄和宿主機的目錄進行掛載
容器在系統(tǒng)上的生命周期是短暫的。delete,K8S用控制器創(chuàng)建的pod,delete相當于重啟,容器的狀態(tài)也會恢復到初始狀態(tài)。一旦回到初始狀態(tài),所有的后天編輯的文件都會消失
容器和節(jié)點之間創(chuàng)建一個可以持久化保存容器內文件的存儲卷。即使容器被銷毀、刪除、重啟,節(jié)點上的存儲卷的數據依然存在,后續(xù)也可以繼續(xù)使用??梢岳^續(xù)將容器內目錄和宿主機掛載,保存的數據繼續(xù)使用
1、emptyDir
容器內部共享存儲卷,K8S系統(tǒng)中,是一個pod當中的多個容器共享一個存儲卷目錄
emptyDir卷可以使pod當中的容器在這個存儲卷上讀取和寫入
emptyDir不能掛載到節(jié)點。隨著pod生命周期的結束,emptyDir卷也會結束,數據也不會保留
容器內部共享。lnmp
2、hostPath
將容器內的掛載點和節(jié)點上的目錄進行掛載,hostPath可以實現數據的持久。node節(jié)點被銷毀,那么數據也會丟失
Q:污點設置為NoExcute時,節(jié)點上的pod會被驅逐,那么文件數據是否還在?
A:在。①只是pod被驅逐,并不是node節(jié)點被銷毀。所以數據還是保留在節(jié)點上; ②pod被驅逐之后,基于控制器創(chuàng)建的,會在其他重新部署,又會在其他節(jié)點生成一個新的存儲卷,數據依然可以持久化。emptyDir的共享數據會丟失,hostPath不會
3、NFS共享存儲
所有pod內的目錄都和節(jié)點上的NFS共享目錄形成數據卷,所有的數據文件都保存在共享目錄中.集中方便管理
PV和PVC(面試必問:組件、功能、網絡、資源調度、擴縮容、pvc/pv)
pv(Presistent Volume):持久化存儲卷。描述和定義一個存儲卷,pv由運維人員來定
pvc(Presistent Volume Claim):持久化存儲的請求。pvc實際上是用來描述或者申明我希望使用什么樣的pv來進行存儲
pvc和pv是一一對應的關系(描述(期望類型)、存儲(大小))
pvc ---> pv ---> NFS
pv和pvc都是虛擬化的概念,是K8S的抽象的虛擬的存儲資源
pvc和pv之間的靜態(tài)請求。(一旦形成百個pvc怎么辦?所以還有動態(tài)pvc)
pv是集群當中的存儲資源,pvc請求存儲資源,也是對存儲資源的一個檢索(檢查索引),選擇一個最合適的pv來存儲資源
pv和pvc之間有生命周期管理:
1、Provisioning(配置) ---> pvc請求request ---> 檢索(找一個合適的pvc) ---> pvc和pv(binding綁定) ---> 使用 ---> pod被刪除 ---> pv的releasing(釋放) ---> recycling(回收)
配置:靜態(tài)、動態(tài)
綁定:就是把pv分配給pvc
使用:就是pod通過pvc使用存儲資源
釋放:pod解除和volume之間的關系,刪除pvc
回收:可以保留pv,以供下一個pvc使用
pv狀態(tài):
Availble:可用,而且沒有被任何pvc綁定(等待綁定)
Bound:綁定。pv已經綁定了pvc,綁定即使用
released:釋放。pvc已經被刪除了,但是pv的存儲資源尚未被集群回收
Failed:pv資源回收失敗,而且pv為不可用狀態(tài)
ReadWriteOnce(RWO):在配置文件里是全稱,存儲pv可讀可寫,但是只能被單個pod掛載
ReadOnlyMany(ROX):存儲的pv可以以只讀的方式被多個pod掛載
ReadWriteMany(RWX):存儲可以支持讀寫的方式被多個pod共享
NFS:可以支持RWO、ROX、RWX三種讀寫和掛載方式
SCSI:
ISCSI:不支持RWX
hostPath:只支持RWO
lsscsi??查看全部的掛載設備
[root@master01 opt]# lsscsi
[1:0:0:0] ???cd/dvd ?NECVMWar VMware IDE CDR10 1.00 ?/dev/sr0
[2:0:0:0] ???disk ???VMware, ?VMware Virtual S 1.0 ??/dev/sda
[root@master01 opt]#?iscsiadm -m session -P 3
iscsiadm: No active sessions.
iscsiadm -m session -P 3
iscsiadm:查看服務器是否有iscsi設備
-m session:指定操作的模塊,管理iSCSI的會話
-P 3:顯示詳細信息的級別。級別就是3,顯示詳細信息
集群回收pv資源的方式:
1、Retain(默認策略):保留。pod和掛載點的數據不會被刪除
2、Recycle:回收。pv上的數據被刪除,掛載點的數據也被刪除
3、Delete:刪除。解綁時自動刪除pv上的數據,(本地硬盤不能使用,AWS, EBS GCE)支持動態(tài)卷的可以使用,pv不再可用(云平臺自己處理)
補充:當pod運行之后,通過pvc請求到pv,除非pod被銷毀,否則無法刪除pvc
K8S當中存儲卷的模式:
emptyDir:容器內存儲卷,隨著pod被銷毀,也會被銷毀,數據不保留
hostPath:節(jié)點目錄的存儲卷,可以實現持久化存儲。數據在每個幾點上都有,不方便集中管理
NFS:共享目錄存儲卷,可以實現持久化,數據集中在一個目錄,方便管理
pv和pvc
pvc是一種請求,請求pv的存儲資源--------硬盤空間(NFS方式)
NFS支持pvc的所有掛載方式和讀寫模式
hostPath僅支持RWO
pvc是以檢索的方式找到匹配的pv資源
檢索掛載方式和讀寫方式
檢索pv能提供的存儲資源的大小
誰合適選誰
保留:默認可以不屑
回收:自動回收。節(jié)點上的數據會被刪除
刪除:pv會變成failed模式,不可用,數據也會被刪除