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
  • 确认挂载点及软链接正确。
相关推荐
哈__2 小时前
KES-Operator重塑Kubernetes环境下的KES数据库集群管理
数据库·kubernetes·operator·kes
九皇叔叔4 小时前
K8S 资源菜单
docker·容器·kubernetes·k8s
安易算力7 小时前
PUE优化工程实践:从1.5到1.2的制冷架构与气流组织改造路径
网络·python·容器·架构·kubernetes
kuroomi1 天前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
程序猿阿越1 天前
containerd如何创建Pod
后端·kubernetes·源码阅读
安易算力2 天前
昇腾生态开发深度实践:CANN算子库架构解析与MindSpore模型优化
网络·容器·架构·kubernetes·vllm
九皇叔叔2 天前
Kubernetes 核心概念:集群架构、核心组件与资源对象
docker·容器·kubernetes·k8s
weixin_420284142 天前
Kubernetes 开发自定义CRD资源
云原生·kubernetes·kubelet
极小狐2 天前
CI 算力饥渴症:Runner 弹性伸缩的架构权衡与落地
ci/cd·kubernetes·devops·弹性伸缩
Thneonl3 天前
SLO 燃烧率公式漏了个 1-,告警要全停才触发
安全·kubernetes