ubuntu

Ubuntu Kubernetes 故障排查怎么做

小樊
38
2025-08-07 15:37:05
栏目: 智能运维

以下是Ubuntu上Kubernetes的故障排查步骤,涵盖节点、网络、组件等关键环节:

一、基础状态检查

  1. 查看节点状态

    kubectl get nodes -o wide  # 查看节点状态、IP及版本
    kubectl describe node <节点名>  # 检查节点Conditions(如Ready、DiskPressure等)
    
    • 若节点为NotReady,重点关注kubelet状态、网络连通性和资源使用。
  2. 检查Kubernetes组件状态

    kubectl get pods -n kube-system  # 查看系统组件Pod(如kube-apiserver、etcd)是否正常
    

二、节点级故障排查

  1. kubelet服务状态

    systemctl status kubelet  # 检查服务是否运行
    journalctl -u kubelet -f  # 查看日志,关注证书过期、容器运行时异常等
    
  2. 资源使用情况

    df -h /var/lib/kubelet  # 检查磁盘空间
    free -m  # 检查内存使用,避免OOM
    top -p $(pgrep kubelet)  # 监控kubelet进程资源占用
    
  3. 容器运行时检查

    systemctl status containerd  # 确认容器运行时正常
    ctr containers list  # 查看容器列表
    

三、网络故障排查

  1. 基础网络连通性

    ping <API-Server-IP>  # 测试节点到API Server的连通性
    nc -zv <API-Server-IP> 6443  # 检查6443端口(API Server)是否开放
    
  2. CNI插件状态

    kubectl get pods -n kube-system -l k8s-app=calico-node  # 查看CNI插件Pod状态
    kubectl logs <cni-pod-name> -n kube-system  # 查看插件日志
    
  3. 网络策略与配置

    kubectl get networkpolicies  # 检查网络策略是否限制通信
    cat /etc/resolv.conf  # 确认DNS配置正确
    

四、集群级故障排查

  1. 证书有效性

    openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -dates  # 检查kubelet证书是否过期
    
  2. 内核与系统日志

    dmesg -T | grep -i "oom\|error"  # 检查内核日志中的OOM或硬件错误
    

五、高级排查工具

六、常见问题处理

参考来源

0
看了该问题的人还看了