Kubernetes在Debian上的故障排查思路
free -h查看内存(建议≥2GB)、df -h查看磁盘空间(建议≥20GB)、top查看CPU负载,确保节点有足够资源运行组件。sudo swapoff -a临时关闭,并修改/etc/fstab永久禁用(注释swap行)。kubectl get nodes查看节点状态,若为NotReady,需进一步排查节点本地问题(如kubelet未运行)。kubectl get pods --all-namespaces查看所有Pod状态,重点关注Pending(资源不足/镜像拉取失败)、Error(配置错误/依赖问题)、CrashLoopBackOff(应用崩溃)的Pod,使用kubectl describe pod <pod-name>获取详细事件和错误原因。journalctl查看kubelet(sudo journalctl -u kubelet)、kube-apiserver(sudo journalctl -u kube-apiserver)、kube-controller-manager(sudo journalctl -u kube-controller-manager)、kube-scheduler(sudo journalctl -u kube-scheduler)的日志,定位组件启动或运行错误。kubectl logs <pod-name>查看应用日志;若Pod有多个容器,需指定容器名(kubectl logs <pod-name> -c <container-name>);若Pod未启动,可添加--previous查看前一个容器的日志。ping测试节点间网络连通性,telnet <目标IP> <端口>(如6443、10250)验证端口是否开放;若使用Calico/Flannel等网络插件,检查其Pod状态(kubectl get pods -n kube-system -l k8s-app=<network-plugin>)是否正常。kubectl get pods -n kube-system -l k8s-app=kube-dns),通过nslookup kubernetes.default.svc.cluster.local(在Pod内执行)测试DNS解析功能,若解析失败,需检查CoreDNS配置(kubectl -n kube-system get configmap coredns -o yaml)。sudo ufw status)或云安全组开放Kubernetes必要端口(如API Server的6443、kubelet的10250/10255、etcd的2379/2380)。kubectl config view查看当前配置,确认clusters、users、contexts配置正确(如API Server地址、证书路径);若配置错误,可通过kubeadm init生成的/etc/kubernetes/admin.conf重新配置。kubeadm初始化集群,检查kubeadm-config.yaml(kubectl -n kube-system get cm kubeadm-config -o yaml)中的参数(如podNetworkCidr、apiServerCertSANs)是否正确,避免因配置错误导致初始化失败。kubectl top node查看节点资源使用情况,若资源不足,需扩展节点(增加物理机/虚拟机)或优化Pod配置(调整resources.requests和resources.limits)。requests(最低需求)和limits(最高上限),避免因资源竞争导致Pod无法调度或频繁重启。kubectl get pv和kubectl get pvc查看持久化卷和卷声明的状态,若PVC处于Pending状态,需检查StorageClass配置(kubectl get storageclass)和存储后端(如NFS、Ceph)是否可用。kubectl logs <storage-plugin-pod-name> -n kube-system),定位存储挂载或访问错误。apt-get install kubelet=<version>降级或升级组件。sudo组);若使用kubectl,确认~/.kube/config文件的权限为600(chmod 600 ~/.kube/config)。sestatus)或AppArmor(aa-status),可能需要调整策略(如setenforce 0临时关闭SELinux)或添加例外规则,避免权限拒绝错误。kubectl explain <command>)、Stack Overflow(搜索类似问题)、Kubernetes Slack(加入社区群组),提供详细的错误日志和环境信息(如Debian版本、Kubernetes版本、配置文件)寻求帮助。