Helm安装,Kubernetes -如何等待Pod准备就绪?

zf2sa74q  于 2023-03-22  发布在  Kubernetes
关注(0)|答案(3)|浏览(177)

我正在创建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}'

a6b3iqyw

a6b3iqyw1#

Kubernetes已经在pod上等待了一些东西(每次发生变化时都会打印一条消息,并在最后打印一个摘要)。

# kubectl rollout status RESOURCE_TYPE RESOURCE_NAME 
kubectl rollout status statefulset app1-hello

# with timeout set to 300 seconds
kubectl rollout status statefulset app1-hello --timeout=300s
5tmbdcev

5tmbdcev2#

有一个很好的选项-n | --namespace NAMESPACE,允许在不同的命名空间中等待部署,例如在kube-system中:

kubectl rollout status deployment tiller-deploy -n kube-system
mspsb9vt

mspsb9vt3#

我想你应该试试这个命令。它将被回滚并再次部署,直到它真的可以部署为止。

helm upgrade --install --atomic --timeout 300s <<release_name>> ./<<dir_name>> --namespace <<namespace>>

相关问题