是否可以检查广告连播状态是否处于完成状态?我有一个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.
我相信字段选择器中可能存在错误,但是只是想知道是否有解决方法或详细信息。
答案 0 :(得分:4)
已完成的广告连播正确的 status.phase 已成功 。
因此,要仅过滤已完成的广告连播,您应该使用以下网址:
kubectl get pod --field-selector=status.phase=Succeeded
尽管如此,不建议使用裸豆荚。考虑使用Job Controller:
一项工作会创建一个或多个Pod,并确保指定数量的 他们成功终止。吊舱成功完成后,工作 跟踪成功的完成情况。
您可以使用以下方法检查工作条件并等待它们:
kubectl wait --for=condition=complete job/myjob