1. 需求描述
docker的默认工作目录是/var/lib/docker
,会存放镜像文件、容器日志和写入到容器临时目录的文件等,默认挂载在系统盘。
kubelet的默认工作目录是/var/lib/kubelet
,会存放volume文件(包括emptyDir volume)、plugin文件等,也是默认挂载在系统盘。
使用kubeadm安装的etcd,默认数据目录是/var/lib/etcd
,也是默认挂载在系统盘。
而系统盘一般都不会太大,因此最好把docker工作目录、kubelet工作目录和etcd数据目录更改到数据盘。
2. 操作思路
节点分为两类,master节点(多个节点)和worker节点(多个节点)。
单个master节点操作流程:
1、master-x禁止调度、驱逐pod
2、master-x操作修改docker工作目录、kubelet工作目录
3、master-x开放调度
4、master-x操作修改etcd数据目录
单个worker节点操作流程:
1、worker-x禁止调度、驱逐pod
2、worker-x操作修改docker工作目录、kubelet工作目录
3、worker-x开放调度
master节点挨个操作,worker节点挨个操作或者分批操作。
3. master节点操作
以master-0为例,方便进行描述。
3.1. 禁止调度&驱逐pod
1 | kubectl drain master-0 --ignore-daemonsets |
驱逐master-0节点上的pod,附带效果禁止调度。
3.2. 修改docker工作目录
详情参考 《Docker修改工作目录》
3.3. 修改kubelet工作目录
详情参考 《kubelet修改工作目录》
3.4. 开放调度
1 | kubectl uncordon master-0 |
3.5. 单个节点修改etcd数据目录
详情参考 《etcd修改数据目录》
4. worker节点操作
以worker-0为例,方便进行描述。
4.1. 禁止调度&驱逐pod
kubectl drain worker-0 --ignore-daemonsets
驱逐worker-0节点上的pod,附带效果禁止调度。
4.2. 修改docker工作目录
详情参考 《Docker修改工作目录》
4.3. 修改kubelet工作目录
详情参考 《kubelet修改工作目录》
4.4. 开放调度
1 | kubectl uncordon worker-0 |