我正在创建CI/CD管道。
我运行helm install --wait --timeout 300 ...
,但它并没有真正等待,只是在“release”状态为DEPLOYED
时返回。
所以我在kubectl get pods --namespace default -l 'release=${TAG}' -o yaml
中看到了一些可以使用的东西:
- kind: Pod
status:
conditions:
- lastProbeTime: null
lastTransitionTime: 2018-05-11T00:30:46Z
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: 2018-05-11T00:30:48Z
status: "True"
type: Ready
所以我想我会看看什么时候Ready
条件变成“真”。
1.感觉这样做有点不对...每个人都解决了这个问题,所以我假设kubectl
有一些特性可以解决这个问题,是吗?
1.这是要查询的正确内容吗?(参见Kubernetes JSONPath reference)
kubectl get pods --namespace default -l 'release=sc8757070' -o jsonpath='{.items[*].status.conditions[?(@.type==“Ready”)].status}'
3条答案
按热度按时间a6b3iqyw1#
Kubernetes已经在pod上等待了一些东西(每次发生变化时都会打印一条消息,并在最后打印一个摘要)。
5tmbdcev2#
有一个很好的选项
-n | --namespace NAMESPACE
,允许在不同的命名空间中等待部署,例如在kube-system
中:mspsb9vt3#
我想你应该试试这个命令。它将被回滚并再次部署,直到它真的可以部署为止。