kubectl wait --for=condition=complete --timeout=30s

坚强是说给别人听的谎言 提交于 2020-05-29 03:52:19

问题


I am trying to check the status of a pod using kubectl wait command through this documentation. Following is the command that i am trying

kubectl wait --for=condition=complete --timeout=30s -n d1 job/test-job1-oo-9j9kj

Following is the error that i am getting

Kubectl error: status.conditions accessor error: Failure is of the type string, expected map[string]interface{}

and my kubectl -o json output can be accessed via this github link.

Can someone help me to fix the issue


回答1:


This totally looks like you are running kubectl wait --for=condition=complete on a Pod as described in your output rather than a Job.

A pod doesn't have the --for=condition=complete option. Exactly, what I get when I run it on a pod:

$ kubectl wait --for=condition=complete pod/mypod-xxxxxxxxxx-xxxxx
error: .status.conditions accessor error: Failure is of the type string, expected map[string]interface{}



回答2:


To wait until your pod is running, check for "condition=ready". In addition, prefer to filter by label, rather than specifying pod id. For example:

$ kubectl wait --for=condition=ready pod -l app=netshoot 
pod/netshoot-58785d5fc7-xt6fg condition met

Another option, is to wait until the deployment has finished successfully:

$ kubectl rollout status deployment netshoot
deployment "netshoot" successfully rolled out

Both options works great in automation scripts, when it is required to wait for an app to be running.



来源:https://stackoverflow.com/questions/53536907/kubectl-wait-for-condition-complete-timeout-30s

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!