背景介紹
本文介紹的內容,以docker-ce=18.03.1~ce-0~ubuntu 和 kubernetes=1.14.2-00版本為例介紹,其他版本應該大同小異。
我們知道,docker-ce的默認工作目錄是/var/lib/docker,會存放docker鏡像文件、容器日志及寫到容器臨時目錄的文件等。
kubelet的默認工作目錄是/var/lib/kubelet,會存放volume文件(包括emptyDir volume)、plugin文件等。
這實際存在一個風險:大量的鏡像文件或容器日志等,可能把操作系統根分區容量占滿,進而導致系統crash或k8s pod被頻繁驅逐等異常發生。
我們在生產環境上,往往需要更改docker和kubelet的工作目錄,將其改到另外一塊數據盤的文件系統上,例如下文中的“/mnt/data”目錄。
修改docker工作目錄
1.修改配置文件/etc/docker/daemon.json
{ "graph": "/mnt/data/docker" }
2 重啟docker service
sudo systemctl daemon-reload sudo systemctl restart docker
3 確認更改生效
sudo docker info
看到 “Docker Root Dir: /mnt/data/docker” ,說明修改成功。
修改kubelet工作目錄
1 修改配置文件/etc/default/kubelet (默認不存在該文件,需要新增創建)
KUBELET_EXTRA_ARGS=--root-dir=/mnt/data/kubelet
2 重啟kubelet service
sudo systemctl restart kubelet
3 確認修改生效
ps -aux|grep kubelet
看到 “--root-dir=/mnt/data/kubelet”, 說明修改成功。