修改docker和kubelet的工作目錄
阿新 • • 發佈:2020-12-21
背景介紹
本文介紹的內容,以docker-ce=19.03.13~centos 和 kubernetes=1.16.2 版本為例介紹,其他版本應該大同小異。
我們知道,docker-ce的預設工作目錄是/var/lib/docker,會存放docker映象檔案、容器日誌及寫到容器臨時目錄的檔案等。
kubelet的預設工作目錄是/var/lib/kubelet,會存放volume檔案(包括emptyDir volume)、plugin檔案等。
這實際存在一個風險:大量的映象檔案或容器日誌等,可能把作業系統根分割槽容量佔滿,進而導致系統crash或k8s pod被頻繁驅逐等異常發生。
我們在生產環境上,往往需要更改docker和kubelet的工作目錄,將其改到另外一塊資料盤的檔案系統上,例如下文中的“/mnt/data”目錄。
修改docker工作目錄
修改 vim /usr/lib/systemd/system/docker.service啟動檔案,新增--graph=/data/docker
ExecStart=/usr/bin/dockerd --graph=/data/docker -H fd:// --containerd=/run/containerd/containerd.sock
重啟docker
systemctl daemon-reload
systemctl restart docker
修改kubelet工作目錄
根據 /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf 載入/etc/sysconfig/kubelet 檔案,只需要修改 /etc/sysconfig/kubelet 即可。
KUBELET_EXTRA_ARGS="--root-dir=/data/k8s/kubelet"
重啟kubelet
systemctl daemon-reload
systemctl restart kubelet
PS:
此時config.yaml檔案還是在/var/lib/kubelet下,需要修改為 : /data/k8s/kubelet
vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
Environment="KUBELET_CONFIG_ARGS=--config=/data/k8s/kubelet/config.yaml"