如何检查我在Kubernetes中的所有部署是否完成

时间:2019-07-30 13:28:11

标签: kubernetes

我的应用程序包含多个部署。我想在成功部署应用程序后执行自定义操作,这等于所有部署都进行得很好。如何确定我的所有kubernetes部署均已成功完成?

2 个答案:

答案 0 :(得分:1)

也许在所有部署中都使用基本的watch命令?

watch kubectl get deployments

并检查 READY 列。

还是我错过了重点?

答案 1 :(得分:1)

您的意思还不清楚。

正如@Marc ABOUCHACRA所指出的,您可以使用watch。可以通过使用-w这样的kubectl get deployments -w标志以更多k8s的方式完成。

但这仅提供有关所需状态/当前状态/最新状态/可用状态的信息。

$ kubectl get deployments
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx-1   1         1         1            1           27h

您可能会Define Readiness probe

  

有时,应用程序暂时无法提供流量。例如,应用程序可能需要在启动过程中加载大数据或配置文件,或者在启动后依赖于外部服务。在这种情况下,您不想杀死应用程序,但也不想发送请求。 Kubernetes提供了准备就绪探针以检测和缓解这些情况。装有报告其容器尚未就绪的容器的容器无法通过Kubernetes Services接收流量。

     

注意:准备就绪探针在容器的整个生命周期内运行。

readinessProbe:
  exec:
    command:
    - cat
    - /tmp/healthy
  initialDelaySeconds: 5
  periodSeconds: 5

或者仅使用Deployment status

  

部署在其生命周期中进入各种状态。推出新的ReplicaSet时可以是progressing,也可以是complete,也可以是fail to progress

$ kubectl rollout status deployment nginx-1
deployment "nginx-1" successfully rolled out