我使用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状态-运行中
答案 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控制台中检查那里是否报告了任何内容。