Kubernetes故障排查Ubuntu上怎么做

以下是在Ubuntu上进行Kubernetes故障排查的关键步骤:

一、基础状态检查

  1. 节点状态
    kubectl get nodes  # 查看节点是否处于Ready状态
    kubectl describe node <节点名>  # 获取节点详细信息
    
  2. 组件版本与状态
    kubeadm version && kubelet --version && kubectl version  # 确保版本兼容
    sudo systemctl status kubelet  # 检查kubelet服务状态
    

二、日志与配置排查

  1. Kubelet日志
    sudo journalctl -u kubelet -f  # 实时查看kubelet日志
    
  2. Pod/容器日志
    kubectl logs  -c <容器名>  # 查看特定容器日志
    kubectl describe pod   # 获取Pod事件和状态
    
  3. 配置文件检查
    • 检查Kubelet配置:/etc/kubernetes/kubelet.conf/var/lib/kubelet/config.yaml
    • 确认CNI插件(如Calico/Flannel)配置正确

三、网络与资源排查

  1. 网络连通性
    ping <目标节点IP>  # 测试节点间连通性
    curl -I http://<服务IP>:<端口>  # 检查服务端口可达性
    traceroute <目标IP>  # 追踪网络路径
    
  2. 资源使用情况
    kubectl top nodes  # 查看节点资源占用
    df -h  # 检查磁盘空间,清理不必要的文件
    

四、常见问题处理

  • 镜像拉取失败:检查镜像名称、标签,配置私有仓库凭证或使用国内镜像源。
  • CrashLoopBackOff:通过kubectl logs定位容器崩溃原因,修复应用代码或配置。
  • 网络策略阻断:使用kubectl get netpol查看策略,调整规则允许必要通信。
  • 磁盘空间不足:清理旧日志、未使用的镜像,或扩展节点磁盘。

五、高级工具辅助

  • 集中式日志采集:部署Fluentd/Fluent Bit + Loki/Elasticsearch,实现日志统一存储与分析。
  • 监控与告警:使用Prometheus+Grafana监控集群状态,设置资源阈值告警。

参考来源