0%

K8S集群中变更数据存储路径

需求描述

docker的默认工作目录是/var/lib/docker,会存放镜像文件、容器日志和写入到容器临时目录的文件等,默认挂载在系统盘。

kubelet的默认工作目录是/var/lib/kubelet,会存放volume文件(包括emptyDir volume)、plugin文件等,也是默认挂载在系统盘。

使用kubeadm安装的etcd,默认数据目录是/var/lib/etcd,也是默认挂载在系统盘。

而系统盘一般都不会太大,因此最好把docker工作目录、kubelet工作目录和etcd数据目录更改到数据盘。

操作思路

节点分为两类,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节点挨个操作或者分批操作。

master节点操作

以master-0为例,方便进行描述。

禁止调度&驱逐pod

1
kubectl drain master-0 --ignore-daemonsets

驱逐master-0节点上的pod,附带效果禁止调度。

修改docker工作目录

详情参考 《Docker修改工作目录》

修改kubelet工作目录

详情参考 《kubelet修改工作目录》

开放调度

1
kubectl uncordon master-0

单个节点修改etcd数据目录

详情参考 《etcd修改数据目录》

worker节点操作

以worker-0为例,方便进行描述。

禁止调度&驱逐pod

kubectl drain worker-0 --ignore-daemonsets

驱逐worker-0节点上的pod,附带效果禁止调度。

修改docker工作目录

详情参考 《Docker修改工作目录》

修改kubelet工作目录

详情参考 《kubelet修改工作目录》

开放调度

1
kubectl uncordon worker-0
  • 本文作者: 好好学习的郝
  • 本文链接: https://www.voidking.com/dev-change-data-dir-in-k8s/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!源站会及时更新知识点及修正错误,阅读体验也更好。欢迎分享,欢迎收藏~