Kubernetes API不显示错误Pod状态

时间:2020-09-01 09:58:12

标签: c# kubernetes

我使用Kubernetes API C#库尝试使用ListPodForAllNamespaces()。使用Status.Phase属性获取Pod的当前状态。 当我尝试kubectl comman获取pod状态时,它显示为崩溃循环和错误状态。

kubectl apply -f multiplebackend-ingress-rule.yaml

curl http://ingress-domain.westeurope.cloudapp.azure.com.westeurope.cloudapp.azure.com/api/health

HTTP/2 404
server: nginx/1.19.1
date: Tue, 01 Sep 2020 09:24:36 GMT
content-length: 0
strict-transport-security: max-age=15724800; includeSubDomains

但是如果pod状态为error state,Kubernetes api将显示为正在运行。 下面是我的代码

kubectl get pods -n api
NAME                                 READY   STATUS             RESTARTS   AGE
test-web-api-78777-2zlwl             1/1     Running            0          9m8s
jobapp1-878787-knt46                 0/1     CrashLoopBackOff   5          4m53s
jobapp2-878787-knt46                 0/1     Error              5          4m53s

输出是

test-web-api-78777-2zlwl状态-正在运行
jobapp1-878787-knt46状态-正在运行
jobapp2-878787-knt46状态-运行中

2 个答案:

答案 0 :(得分:2)

您的kubectl命令和C# kubernetes api都没有错。

您可以看到最后两个Pod重新启动了5次。在重新启动5次后,它们每个都处于Running状态。

运行C# api时,所有吊舱实际上都处于Running阶段。

如果稍等片刻后再运行C# api,就会发现它们不在Running阶段。

答案 1 :(得分:0)

尝试

kubectl describe [-n namespace] pod [pod_id]

您可能会在其中看到一些内容,以告诉您pod为何处于崩溃状态。.您还可以在google cloud控制台中检查那里是否报告了任何内容。