0

0

LinuxKubernetes节点管理教程_节点维护与故障排查

冷漠man

冷漠man

发布时间:2026-01-09 22:03:08

|

113人浏览过

|

来源于php中文网

原创

kubectl get nodes可查看节点状态,Ready表示健康,NotReady说明kubelet未就绪或通信异常;需关注AGE、VERSION、OS-IMAGE;进一步用describe node、systemctl status kubelet、journalctl排查;维护时先cordon再drain,修复常见故障如网络不通、证书过期、磁盘耗尽、CRI异常;建议启用kubelet指标、Node Problem Detector及版本校验。

linuxkubernetes节点管理教程_节点维护与故障排查

查看节点状态与基本信息

节点是否正常运行,第一步要看 kubectl get nodes 的输出。状态为 Ready 表示节点已注册且健康,NotReady 则说明 kubelet 未就绪或通信异常。注意观察 AGE(上线时间)、VERSION(Kubernetes 版本)和 OS-IMAGE(操作系统镜像),这些信息能快速定位版本不一致或系统老化问题。

进一步排查可用执行:

  • kubectl describe node :查看 Conditions(如 MemoryPressure、DiskPressure、PIDPressure)、Allocatable 资源、已调度 Pod 列表及最近事件
  • ssh 到节点后运行 systemctl status kubelet:确认 kubelet 进程是否活跃,日志中是否有 TLS 认证失败、cgroup 配置错误等关键报错
  • journalctl -u kubelet -n 100 --no-pager:获取最近 100 行 kubelet 日志,重点关注 “failed to load”、“connection refused”、“certificate has expired” 类提示

节点临时下线与安全驱逐

维护前需让节点停止接收新 Pod,并迁移已有工作负载。直接关闭 kubelet 或重启机器会导致 Pod 意外终止,应使用 cordon + drain 组合操作。

标准流程如下:

Content at Scale
Content at Scale

SEO长内容自动化创作平台

下载
  • kubectl cordon :标记节点为不可调度,新 Pod 不会再被分配至此
  • kubectl drain --ignore-daemonsets --delete-emptydir-data:优雅驱逐所有可迁移 Pod(跳过 DaemonSet 管理的 Pod;若 Pod 使用 emptyDir,需加 --delete-emptydir-data 显式允许清理)
  • 等待 drain 完成后再执行系统更新、磁盘扩容或硬件更换等操作
  • 恢复时运行 kubectl uncordon 解除调度限制

常见节点故障场景与修复

节点长期处于 NotReady 或反复震荡,通常由以下几类原因引起:

  • 网络不通:检查节点能否访问 API Server(curl -k https://:6443/healthz),确认防火墙是否放行 6443(API Server)、10250(kubelet metrics)、30000–32767(NodePort)端口
  • 证书过期:kubelet 使用的 client 证书默认有效期为 1 年。若报 “x509: certificate has expired or is not yet valid”,需轮换证书 —— 可通过 kubeadm certs renew node(kubeadm 集群)或手动签发并重载 kubelet
  • 磁盘或 inodes 耗尽:运行 df -hdf -i,重点检查 /var/lib/kubelet 和容器运行时根目录(如 /var/lib/containerd)。清理镜像(crictl rmi --prune)或旧容器日志可释放空间
  • CRI 运行时异常:确认 containerd 或 dockerd 是否运行(systemctl is-active containerd),检查其日志(journalctl -u containerd),常见问题包括插件未加载、沙箱镜像拉取失败

节点资源监控与长期健康保障

被动排障不如主动监控。建议在节点上部署基础可观测能力:

  • 启用 kubelet 的 --enable-server=true--read-only-port=10255(或更安全的 10250 + TLS),供 Prometheus 抓取指标
  • 配置 Node Problem Detector(NPD):监听系统日志(如 kernel oom-killer、disk full)并上报为 NodeCondition,便于 kubectl describe node 直观发现
  • 定期校验节点组件版本一致性:kubectl get nodes -o wide 对比 VERSION 列,避免因 minor 版本跳跃(如 v1.26 → v1.28)引发兼容性问题
  • 对关键节点启用 taints(如 node-role.kubernetes.io/control-plane:NoSchedule)防止误调度,同时为 worker 节点添加 label(如 env=prod)便于策略化管理

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

425

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

174

2023.10.30

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.12.29

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

21

2025.12.22

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

21

2025.12.22

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1880

2024.08.16

Golang 分布式缓存与高可用架构
Golang 分布式缓存与高可用架构

本专题系统讲解 Golang 在分布式缓存与高可用系统中的应用,涵盖缓存设计原理、Redis/Etcd集成、数据一致性与过期策略、分布式锁、缓存穿透/雪崩/击穿解决方案,以及高可用架构设计。通过实战案例,帮助开发者掌握 如何使用 Go 构建稳定、高性能的分布式缓存系统,提升大型系统的响应速度与可靠性。

60

2026.01.09

java学习网站推荐汇总
java学习网站推荐汇总

本专题整合了java学习网站相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.9万人学习

Git 教程
Git 教程

共21课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号