使用virtualbox虛擬機(jī)運(yùn)行k8s集群,一段時間后虛擬機(jī)磁盤被占滿
使用du -d 1 -h
查看后發(fā)現(xiàn)消耗內(nèi)存最大的主要分為兩部分:系統(tǒng)日志systemd journal和/var/lib/docker/overlay2
目錄
使用系統(tǒng)為ubuntu 22.04
systemd journal清理和限制大小
直觀清理
sudo journalctl --vacuum-time=2d # 按照想要保存的天數(shù)
sudo journalctl --vacuum-size=500M # 按照想要保存的大小
永久限制
journal的配置在/etc/systemd/journald.conf
诡蜓,可以訪問文件查看并修改晚树,也可以使用systemd-analyze cat-config systemd/journald.conf
查看
修改最大的存檔和活躍文件占用大小听诸,將下列參數(shù)取消注釋并賦值
SystemMaxUse=500M
SystemMaxFiles=10
RuntimeMaxUse=30M
RuntimeMaxFiles=10
重啟機(jī)器并查看更新
systemctl status systemd-journald.service
如果只修改內(nèi)存中活躍的日志文件的大小的話也可以直接重啟systemd.journald-service,這種情況不會顯示/var/log/journal的文件大小信息更新
systemctl restart systemd-journald.service
參考資料
控制日志文件的大小
這里有更詳細(xì)的每個參數(shù)的解釋
/var/lib/docker/overlay2目錄清理和限制大小
/var/lib/docker/overlay2
目錄下含有容器的讀寫層,如果容器使用自己的文件系統(tǒng)保存了數(shù)據(jù),那么就會寫到此目錄下
直觀清理
先用docker system df
看一下哪部分占的空間比較多肤寝,然后做對應(yīng)的處理
docker system prune # 清理磁盤,刪除關(guān)閉的容器抖僵、無用的數(shù)據(jù)卷和網(wǎng)絡(luò)鲤看,以及dangling鏡像
docker image prune # 刪除懸空的鏡像
docker container prune # 刪除無用的容器
docker volume prune # 刪除無用的卷
docker network prune # 刪除無用的網(wǎng)絡(luò)
永久限制
編輯/etc/docker/daemon.json
max-size=500m,意味著一個容器日志大小上限是500M耍群,
max-file=3义桂,意味著一個容器有三個日志,分別是id+.json蹈垢、id+1.json慷吊、id+2.json。
{
"registry-mirrors": ["https://ch72w18w.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
“l(fā)og-driver”:“json-file”,
"log-opts": {"max-size":"100m", "max-file":"3"}
}
參考資料
(Docker下var/lib/docker/overlay2空間清理辦法)[https://blog.csdn.net/m0_67402236/article/details/126327346]
(更多docker清理命令)[http://www.reibang.com/p/f1c3e3508b8e]