CentOS7虚拟机部署minikube后pod异常重启探针连接拒绝如何排查
故障排查步骤
第一步:确认minikube资源配置充足
你当前运行的是Eclipse Che这类重型云原生IDE,minikube默认的2核2G配置完全无法支撑,会直接导致服务启动超时、探活失败、apiserver请求超时。
执行命令查看当前minikube配置:minikube config view
如果cpu低于4核、内存低于8G,重新启动minikube指定配置:minikube start --cpus 4 --memory 8192
资源不足是90%以上minikube跑重型应用失败的原因,优先排查。第二步:验证K8s版本与部署应用的兼容性
从che-operator日志可以看到明确的版本不兼容警告:extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+,如果你当前minikube使用的K8s版本≥1.22,旧版本Eclipse Che使用的已废弃API会直接无法运行。
执行命令查看当前K8s版本:kubectl version --short
如果版本过高,可以在启动minikube时指定兼容的低版本,比如1.21:minikube start --kubernetes-version=v1.21.14 --cpus 4 --memory 8192
也可以直接升级Eclipse Che到最新适配高版本K8s的发行版。第三步:检查集群内部网络连通性
日志中存在apiserver请求超时、选主失败的报错,先确认集群核心组件运行正常:kubectl get pods -n kube-system
确保coredns、kube-proxy等pod都处于Running状态。之后进入异常pod手动测试到apiserver的连通性:
# 替换为你的che-operator pod名称 kubectl exec -it che-operator-xxxx -n eclipse-che -- sh curl -k https://10.96.0.1:443
如果请求不通,说明minikube内部CNI网络异常,可执行minikube delete后重新初始化集群。
第四步:调整探活探针配置
如果应用本身启动慢,默认的探针初始等待时间太短会导致还没启动完成就被判定异常重启。可以临时删除对应deployment的livenessProbe和readinessProbe配置,观察应用是否能正常启动,确认是探针问题后再调整initialDelaySeconds、timeoutSeconds等参数到合理值。第五步:查看应用完整启动日志
如果上述步骤都无法解决,查看之前崩溃的pod实例日志定位具体启动报错:kubectl logs <异常pod名称> -n eclipse-che --previous
通常能找到配置错误、依赖服务缺失、权限不足等具体根因。
内容的提问来源于stack exchange,提问作者Debiprasad Mishra

