ubuntu

Ubuntu K8S故障排查指南

小樊
46
2025-10-14 07:48:41
栏目: 智能运维

Ubuntu环境下Kubernetes(K8s)故障排查指南

一、基础状态检查(首要步骤)

1. 集群节点状态

使用kubectl get nodes查看节点是否处于Ready状态(若为NotReady,需进一步排查)。通过kubectl describe node <节点名>获取节点详细信息,重点关注Conditions字段(如DiskPressure磁盘压力、MemoryPressure内存压力、PIDPressure进程压力等)。

2. 系统组件状态

检查Kubernetes核心组件(kube-apiserver、etcd、kube-controller-manager等)的Pod状态:kubectl get pods -n kube-system。若组件Pod处于CrashLoopBackOffPendingError状态,需通过kubectl logs <Pod名> -n kube-system查看其日志。

3. 组件版本兼容性

确保kubeadmkubeletkubectl版本一致(建议使用同一小版本,如1.27.x):kubeadm version && kubelet --version && kubectl version。版本不兼容可能导致集群初始化或升级失败。

二、节点级故障排查(聚焦单节点问题)

1. kubelet服务状态

kubelet是节点与集群通信的核心组件,需确保其运行正常:

2. 容器运行时检查

K8s默认使用containerd作为容器运行时,需确认其状态:

3. 资源使用情况

节点资源不足(磁盘、内存、CPU)会导致Pod无法调度或节点NotReady

三、网络故障排查(常见通信问题)

1. 基础网络连通性

2. CNI插件状态

CNI插件(如Calico、Flannel)负责Pod网络,需确认其运行正常:

3. DNS配置

Pod无法解析Service名称通常是DNS问题:

四、Pod与容器故障排查(最常见的问题场景)

1. Pod状态检查

2. 容器日志分析

3. 常见Pod问题处理

五、存储故障排查(持久化问题)

1. PVC与PV状态

2. 存储卷挂载检查

六、证书与安全问题(影响集群通信)

1. 证书有效期检查

2. Token过期问题

若Node无法加入集群,可能是kubeadm join使用的Token过期:

七、高级排查工具(复杂问题辅助)

1. kubectl debug

通过kubectl debug创建诊断容器,进入节点或Pod执行诊断命令(如pingtraceroutenslookup):

2. 集中监控与告警

部署Prometheus+Grafana监控集群状态(如节点资源、Pod状态、网络流量),设置阈值告警(如节点磁盘空间超过80%、Pod内存使用超过90%),及时发现潜在问题。

0
看了该问题的人还看了