這篇文章主要為大家展示了“如何解決overlay2存儲驅(qū)動的磁盤配額問題”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何解決overlay2存儲驅(qū)動的磁盤配額問題”這篇文章吧。
成都創(chuàng)新互聯(lián)公司是專業(yè)的惠陽網(wǎng)站建設(shè)公司,惠陽接單;提供網(wǎng)站設(shè)計、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行惠陽網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!為啥要用overlay2
docker centos (內(nèi)核3.10)上默認存儲驅(qū)動是devicemapper 的loop-lvm模式,這種模式是用文件模擬塊設(shè)備,不推薦生產(chǎn)使用direct lvm又不是一個開箱即用的模式,懶得配置,最關(guān)鍵的是 docker in docker的情況下 device mapper是行不通的,典型的場景就是用drone時,構(gòu)建docker鏡像就不能正常工作,overlay存儲驅(qū)動層數(shù)過多時會導(dǎo)致文件鏈接數(shù)過多可能會耗盡inode,所以當(dāng)前overlay2是個比較好的選擇。
內(nèi)核
你需要一個高版本的內(nèi)核推薦4.9以上,我們用的是4.14,如果使用低內(nèi)核可能你一些FROM別的基礎(chǔ)鏡像就跑不了,如用overlay2在centos系統(tǒng)上跑FROM ubuntu的鏡像(不是必現(xiàn))。
我們這里提供了一個免費的內(nèi)核rpm包 這個在我們生產(chǎn)環(huán)境跑了將近一年沒出任何問題。
監(jiān)控
overlay2如果不做一些特殊操作,cadvisor是監(jiān)控不到容器內(nèi)實際使用多少磁盤的,經(jīng)過xfs和配額配置才能正常監(jiān)控到
使用xfs文件系統(tǒng)
不使用xfs就無法做到給每個容器限制10G的大小,就可能出現(xiàn)一個容器的誤操作導(dǎo)致把機器盤全占完,我們使用了lvm去弄個分區(qū)出來做xfs文件系統(tǒng),當(dāng)然你也可以不用lvm。
if which lvs &>/dev/null; then echo ""; echo -e "Remove last docker lv and mount ......" lvremove k8s/docker -y lvcreate -y -n docker k8s -L 100G mkfs.xfs -n ftype=1 -f /dev/mapper/k8s-docker mkdir -p /var/lib/docker mount -o pquota,uqnoenforce /dev/mapper/k8s-docker /var/lib/docker echo -e "/dev/mapper/k8s-docker /var/lib/docker xfs defaults,pquota 0 0" >> /etc/fstab fi
配置使用overlay2
# cat /etc/docker/daemon.json { "storage-opts": [ "overlay2.override_kernel_check=true", "overlay2.size=10G" ], "log-driver": "json-file", "log-opts": { "max-size": "10m" } }
systemctl daemon-reload systemctl restart docker
這樣就可以把每個容器磁盤大小限制在10G了
以上是“如何解決overlay2存儲驅(qū)動的磁盤配額問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!