在Debian上部署Kubernetes(K8s)时,故障排查是一个关键技能,可以帮助你快速定位和解决问题。以下是一些常用的故障排查方法:
kubectl get nodes 命令检查节点状态,确保所有节点正常运行。kubectl get events 命令查看集群事件日志,了解重要事件和错误信息。kubectl get pods --all-namespaces 命令获取所有Pod的状态,检查是否有Pod未处于运行状态。kubectl describe pod <pod-name> -n <namespace> 获取特定Pod的详细信息。kubectl get services 命令查看服务状态,验证服务、Pod和节点之间的网络通信。kubectl get pv, kubectl get pvc 和 kubectl get storageclass 命令检查存储卷声明、存储类和持久卷的状态。kubectl logs <pod-name> -n <namespace> 命令查看特定Pod中容器的日志输出。ping, nc, telnet 等工具测试Pod间的网络连通性,或通过 curl 检查服务端口是否可达。kubectl get netpol 查看并分析现有策略。kubectl get pvc, kubectl get pv 查看PersistentVolumeClaim和PersistentVolume的绑定状态与容量,确认是否存在未绑定、容量不足等问题。kubectl top nodes 查看节点资源使用情况,判断是否存在资源瓶颈。.spec.template.spec.nodeselector, .spec.affinity, .spec.tolerations 等调度相关字段配置,看是否限制了Pod的调度范围。kubectl get rolebindings, clusterrolebindings 检查角色绑定关系,确保用户或服务账户具有正确的API访问权限。kube-apiserver-audit.log,跟踪特定用户或账户的API请求与响应,排查授权问题。kubeconfig 文件、api server配置及网络代理(如kube-proxy、ingress-nginx等)的认证设置,确保访问路径无误。ping, nc 或 curl 等工具测试与目标服务的网络连通性,包括ClusterIP、NodePort或Headless service的DNS解析。通过这些方法,你可以系统地排查和解决Debian上K8s部署中遇到的问题。根据具体现象和错误信息,选择合适的排查步骤和方法,能够帮助你快速定位并解决问题。