说明
新部署的k8s平台,采用默认配置,数据存放在默认目录,现需要统一管理数据,将数据存放在指定目录和云磁盘。
注意:若k8s对接其他组件,例如openebs,需单独做数据迁移。
操作记录
前提条件,已准备好新的存储数据的云磁盘和目录。
创建新的云磁盘,挂载到主机,例如/dev/vdc。
mkdir/data mkfs.ext4 /dev/vdcmount/dev/vdc /data/ 修改文件,vim/etc/fstab# 追加配置/dev/vdc /data ext4 defaults00检查环境,确保变更前后状态一致,
kubectl getnode-A-owide kubectl get pod-A-owide需注意runtime,
若用docker
vim/etc/docker/daemon.json# 新增配置"data-root":"/data/docker"同步数据到新目录,配置生效,
rsync-av/var/lib/docker/ /data/containerd/ systemctl daemon-reload systemctl startdockersystemctl statusdocker若使用containerd,
cp/etc/containerd/config.toml /etc/containerd/config.toml.bak systemctl stop containerdrsync-av/var/lib/containerd/ /data/containerd/vim/etc/containerd/config.toml# 修改root="/data/containerd"配置生效
systemctl daemon-reload systemctl start containerd systemctl status containerd配置kubelet数据
mkdir/data/kubelet systemctl stop kubeletcp/etc/systemd/system/kubelet.service.d/10-kubeadm.conf /etc/systemd/system/kubelet.service.d/10-kubeadm.conf.backuprsync-av/var/lib/kubelet/ /data/kubelet/vim/etc/systemd/system/kubelet.service.d/10-kubeadm.conf# 在最后一行ExecStart=尾部追加配置--root-dir=/data/kubelet使配置生效
systemctl daemon-reload systemctl start kubelet systemctl start kubelet检查环境,确保变更前后状态一致,
kubectl getnode-A-owide kubectl get pod-A-owide重启机器
推荐重启机器,确认配置依旧生效。
清理旧环境
当平台稳定允许三天后,且无数据异常,删除原数据存档的目录,释放占用的空间。
rm-rf/var/lib/containerd/ /var/lib/docker /var/lib/kubelet/注意:集群内所有节点都要操作。