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