溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決overlay2存儲驅動的磁盤配額問題

發(fā)布時間:2021-11-08 10:56:59 來源:億速云 閱讀:228 作者:小新 欄目:服務器

這篇文章主要為大家展示了“如何解決overlay2存儲驅動的磁盤配額問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何解決overlay2存儲驅動的磁盤配額問題”這篇文章吧。

為啥要用overlay2

docker  centos (內核3.10)上默認存儲驅動是devicemapper 的loop-lvm模式,這種模式是用文件模擬塊設備,不推薦生產使用direct lvm又不是一個開箱即用的模式,懶得配置,最關鍵的是 docker in docker的情況下 device mapper是行不通的,典型的場景就是用drone時,構建docker鏡像就不能正常工作,overlay存儲驅動層數(shù)過多時會導致文件鏈接數(shù)過多可能會耗盡inode,所以當前overlay2是個比較好的選擇。

內核

你需要一個高版本的內核推薦4.9以上,我們用的是4.14,如果使用低內核可能你一些FROM別的基礎鏡像就跑不了,如用overlay2在centos系統(tǒng)上跑FROM ubuntu的鏡像(不是必現(xiàn))。

我們這里提供了一個免費的內核rpm包 這個在我們生產環(huán)境跑了將近一年沒出任何問題。

監(jiān)控

overlay2如果不做一些特殊操作,cadvisor是監(jiān)控不到容器內實際使用多少磁盤的,經過xfs和配額配置才能正常監(jiān)控到

使用xfs文件系統(tǒng)

不使用xfs就無法做到給每個容器限制10G的大小,就可能出現(xiàn)一個容器的誤操作導致把機器盤全占完,我們使用了lvm去弄個分區(qū)出來做xfs文件系統(tǒ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存儲驅動的磁盤配額問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI