检查Kubernetes Pod状态以了解完成状态

时间:2019-03-15 14:25:42

标签: kubernetes

是否可以检查广告连播状态是否处于完成状态?我有一个Pod,我只想使用一次(初始化容器不能完全满足我的目的),并且想写一张支票以等待“已完成”状态。

我能够获得“正在运行”,“待处理”,但无法获取“已完成”。

运行:

[user@sandbox gcp_kubernetes_installation]$ kubectl get pods --field-selector=status.phase=Running -n mynamespace
NAME                                READY   STATUS    RESTARTS   AGE
mssql-deployment-795dfcf9f7-l2b44   1/1     Running   0          6m
data-load-pod    1/1     Running   0          5m

待处理:

[user@sandbox gcp_kubernetes_installation]$ kubectl get pods --field-selector=status.phase=Pending -n mynamespace
NAME                    READY   STATUS    RESTARTS   AGE
app-deployment-0   0/1     Pending   0          5m

已完成:

[user@sandbox gcp_kubernetes_installation]$ kubectl get pod -n namespace
NAME                                READY   STATUS      RESTARTS   AGE
mssql-deployment-795dfcf9f7-l2b44   1/1     Running     0          11m
data-load-data-load-pod    0/1     Completed   0          10m
app-deployment-0               0/1     Pending     0          10m
[user@sandbox gcp_kubernetes_installation]$ kubectl get pods --field-selector=status.phase=Completed -n namespace
No resources found.

我相信字段选择器中可能存在错误,但是只是想知道是否有解决方法或详细信息。

1 个答案:

答案 0 :(得分:4)

已完成的广告连播正确的 status.phase 已成功

因此,要仅过滤已完成的广告连播,您应该使用以下网址:
kubectl get pod --field-selector=status.phase=Succeeded

尽管如此,不建议使用裸豆荚。考虑使用Job Controller

  

一项工作会创建一个或多个Pod,并确保指定数量的   他们成功终止。吊舱成功完成后,工作   跟踪成功的完成情况。

您可以使用以下方法检查工作条件并等待它们:
kubectl wait --for=condition=complete job/myjob