Kubernetes deployments 故障排查指引
2021-07-05 10:06:15 0 举报
原文:https://learnk8s.io/troubleshooting-deployments
作者其他创作
大纲/内容
?
配置私有注册中心认证
YES
~$ kubectl get pods
应用应该工作正常了。能否通过外网访问?
~$ kubectl port-forward <ingress-pod-name> 8080:<ingress-port>
修复镜像名称
修复 ingress serviceName 和 servicePort
NO
未知状态
扩容集群
~$ kubectl describe pod <pod-name>
修复 Dockerfile
~$ kubectl describe ingress <ingress-name>
查询 StackOverflow
修复标签
修复崩溃的应用
容器是否很快就终止了?
能否访问应用?
修复应用。应用应该监听在 0.0.0.0。更新容器端口。
调整 ResourceQuota 限制
Pod 是否在频繁重启?状态不断在 Running 和 CrashLoopBackoff 中切换?
修复应用问题
是否已查看日志并修复崩溃的应用?
能否查看到 endpoints 列表?
~$ kubectl port-forward <pod-name> 8080:<pod-port>
START
修复 Service 选择器。它必须匹配 Pod 标签
故障大概率与基础设施和集群的暴露方式有关。
Controller manager 故障
修复 PersistentVolumeClaim
修复 Service targetPort 和 containerPort
Kube Proxy 可能存在故障
故障大概率与 CRI 或者 Kubelet 有关
Pod 状态是否为 RUNNING?
~$ kubectl get pods -o wide
原文:https://learnk8s.io/troubleshooting-deployments翻译 by weifeilong
~$ kubectl logs <pod-name>
~$ kubectl port-forward service/<service-name> 8080:<service-port>
是否达到了 ResourceQuota 限制?
Ingress 运行正常
是否存在状态为 PENDING 的 Pod?
~$ kubectl describe service <service-name>
修复存活探针
镜像名称是否正确?
Schedular 故障
END
Ingress controller 存在故障,请查阅文档。
Kubelet 故障
Service 运行正常
能否看到应用日志?
Pod 是否已经被分配了 IP 地址?
serviceName 和 servicePort 是否匹配 Service?
集群是否已满?
能否看到 Backend 列表?
大概率是挂载卷的故障
Service 的 targetPort 是否与 Pod 的 containerPort 匹配?
Pod 运行正常
是否忘记了在 Dockerfile 中添加 CMD 指令?
Pod 状态是否为 READY?
Pod 状态是否为 ImagePullBackOff?
修复就绪探针
镜像标签是否有效?是否存在?
Selector 是否匹配正确的 Pod 标签?
Pod 状态是否为RunContainerError?
Pod 状态是否为CrashLoopBackOff?
容器端口能否正确暴露并监听在 0.0.0.0?
镜像是否来自私有注册中心?
Pod 是否已被分配至 Node 节点?
Kubelet故障
是否正在挂载一个 Pending 状态的 PersistentVolumeClaim?
0 条评论
下一页
为你推荐
查看更多