背景介绍
本文介绍的内容,以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”, 说明修改成功。