k8s node 修改挂载点操作指导手册

目的

本手册提供 Kubernetes 节点挂载点修改的标准操作流程,适用于以下场景:

  • 调整存储架构:将容器运行时(containerd)和 kubelet 数据迁移至新的挂载点(如外接磁盘)。
  • 优化存储性能:通过外接磁盘扩展存储空间或提升 I/O 性能。
  • 运维标准化:确保操作过程安全,避免因配置错误导致节点不可用或数据丢失。

关键注意事项

⚠ 业务影响:节点驱逐(drain)会导致 Pod 迁移,可能影响业务可用性,建议在低峰期执行。 ⚠ 依赖顺序:必须按顺序停止 kubeletcontainerd,修改挂载点后正确恢复服务。 ⚠ 数据安全:重启节点后,将原来的/var/lib/kubelet/var/lib/containerd目录move到/var/lib/containers下 ⚠ 验证步骤:修改 /etc/fstab 后需验证挂载是否成功,避免重启后节点无法启动

驱逐节点上的 Pod(维护模式)

ini 复制代码
kubectl drain <Maintenance-node> --ignore-daemonsets --delete-local-data=true
  • --ignore-daemonsets:忽略 DaemonSet 管理的 Pod(如 kube-proxycalico-node)。

  • --delete-local-data:删除本地存储的 Pod(如 EmptyDir 数据)。

Kubelet containerd 设置开机不启动

bash 复制代码
systemctl disable kubelet containerd
  • 防止重启后服务自动启动,导致挂载点冲突。

重启节点

复制代码
reboot
  • 确保所有服务停止,避免文件被占用导致挂载失败。

修改挂载点

修改挂载点(如外接磁盘挂载至 /var/lib/containers

  • 检查外接磁盘是否识别(如 /dev/sdb):

    lsblk -f

  • 修改 /etc/fstab,添加新挂载点(示例):

bash 复制代码
/dev/sdb1  /var/lib/containers  ext4  defaults  0  0
  • 挂载并验证:
bash 复制代码
mount -a
df -h /var/lib/containers

迁移原来的数据

bash 复制代码
mv /var/lib/kubelet /var/lib/containers/kubelet
mv /var/lib/containerd /var/lib/containers/containerd

创建软链

bash 复制代码
ln -sv /var/lib/containers/kubelet /var/lib/kubelet
ln -sv /var/lib/containers/containerd /var/lib/containerd

启动 containerd 和 kubelet

sql 复制代码
systemctl start containerd kubelet
  • 检查服务状态:
lua 复制代码
systemctl status containerd kubelet

重新设置开机启动

bash 复制代码
systemctl enable kubelet containerd

确保节点重启后服务自动恢复。

验证步骤

  1. 检查 节点 状态
arduino 复制代码
kubectl get nodes
  • 确认节点状态恢复为 Ready
  1. 检查 Pod 是否重新调度
arduino 复制代码
kubectl get pods -o wide | grep <Maintenance-node>
  • 确保业务 Pod 已正常迁移回该节点。
  1. 验证存储是否生效
bash 复制代码
df -h /var/lib/containers
ls -l /var/lib/kubelet /var/lib/containerd
  • 确认挂载点及软链接正确。
相关推荐
Andy杨6 小时前
20250707-4-Kubernetes 集群部署、配置和验证-K8s基本资源概念初_笔记
笔记·容器·kubernetes
退役小学生呀12 小时前
十、K8s集群资源合理化分配
linux·云原生·容器·kubernetes·k8s
Johny_Zhao21 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
木鱼时刻2 天前
容器与 Kubernetes 基本概念与架构
容器·架构·kubernetes
指月小筑2 天前
开源 vGPU 方案 HAMi: core&memory 隔离测试
人工智能·云原生·容器·kubernetes·开源·gpu算力
chuanauc3 天前
Kubernets K8s 学习
java·学习·kubernetes
庸子3 天前
基于Jenkins和Kubernetes构建DevOps自动化运维管理平台
运维·kubernetes·jenkins
李白你好3 天前
高级运维!Kubernetes(K8S)常用命令的整理集合
运维·容器·kubernetes
Connie14513 天前
k8s多集群管理中的联邦和舰队如何理解?
云原生·容器·kubernetes
伤不起bb3 天前
Kubernetes 服务发布基础
云原生·容器·kubernetes