Kubernetes集群Ubuntu节点故障怎么办
导读:Kubernetes 集群 Ubuntu 节点故障排查与恢复 一、快速判断与定位 查看节点状态与事件:kubectl get nodes -o wide;kubectl describe node (关注 Conditions、Event...
Kubernetes 集群 Ubuntu 节点故障排查与恢复
一、快速判断与定位
- 查看节点状态与事件:kubectl get nodes -o wide;kubectl describe node (关注 Conditions、Events、Capacity/Allocatable、System Info)。
- 查看节点上关键服务:systemctl status kubelet;journalctl -u kubelet -S “10m ago”;必要时查看 containerd:journalctl -u containerd -S “10m ago”。
- 检查系统资源与磁盘:df -h(常见根因是磁盘满)、free -h、top;检查系统日志:tail -f /var/log/syslog。
- 若控制平面在本机执行 kubectl 报错如“The connection to the server 127.0.0.1:6443 was refused”,多为控制平面未就绪或 kubelet 未启动;若报错“localhost:8080 was refused”,多为 kubeconfig 未正确配置(Node 节点应使用 /etc/kubernetes/kubelet.conf 而非 admin.conf)。
二、常见故障场景与修复
- 节点 NotReady:优先重启 kubelet(systemctl restart kubelet),检查 kubelet 配置与证书路径、磁盘空间、内存与 CPU 压力;必要时查看 kubelet 与 containerd 日志定位 CRI/网络插件异常。
- 重启后 API 连接被拒绝:确认 kubelet 已启动(systemctl start kubelet),若仍报 127.0.0.1:6443 被拒绝,检查控制平面容器/Pod 是否运行、端口监听与防火墙策略。
- 节点反复 NotReady 且伴随镜像拉取/启动慢:检查节点规格与系统 OOM,必要时为 kubelet 设置资源预留(如 --kube-reserved、–system-reserved),并评估禁用 systemd-oomd 对 kubelet 的影响(生产环境谨慎操作)。
- 节点加入失败(kubeadm join 报错 FileAvailable、Port 10250 占用等):说明该节点曾加入过集群,先执行 kubeadm reset 清理旧状态后再 join。
- 节点网络不可达:检查网卡/路由/DNS(如“network is unreachable”),核对 UFW/iptables 规则是否阻断节点间通信,必要时临时关闭防火墙验证。
- kubectl 客户端无法连接:确认 kubeconfig 路径与内容正确;在 Master 使用 admin.conf,在 Node 使用 kubelet.conf。
三、应急恢复与隔离
- 隔离故障节点:kubectl cordon ;驱逐可迁移 Pod:kubectl drain --ignore-daemonsets --delete-emptydir-data(无法驱逐时加 --force --grace-period=0 作为最后手段)。
- 重启/修复后恢复调度:确认 kubelet 与容器运行时正常、节点 Ready 后再执行 kubectl uncordon 。
- 不可恢复的节点:记录节点信息,从集群移除(如 kubectl delete node ),排障后重建或替换节点。
四、预防与加固建议
- 资源与健康基线:为节点设置合理规格(建议至少4 CPU/8GB 内存)、系统盘≥128GB;监控并告警 kubelet 错误、API 失败率、磁盘使用率等关键指标。
- 配置优化:适度提升 kubelet 的 API 限流(如 --kube-api-qps=20、–kube-api-burst=30),配置 kube-reserved/system-reserved,减少资源争用导致的 NotReady。
- 版本与镜像管理:定期升级节点镜像与 Kubernetes 版本,采用蓝绿/金丝雀方式滚动更新节点池,降低变更风险。
- 安全与网络:统一使用 kubeconfig 管理凭据,避免误用 admin.conf;核对节点间与 API Server 的端口与防火墙策略,确保网络策略不阻断关键流量。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Kubernetes集群Ubuntu节点故障怎么办
本文地址: https://pptw.com/jishu/757928.html
