我的应用程序包含多个部署。我想在成功部署应用程序后执行自定义操作,这等于所有部署都进行得很好。如何确定我的所有kubernetes部署均已成功完成?
答案 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
有时,应用程序暂时无法提供流量。例如,应用程序可能需要在启动过程中加载大数据或配置文件,或者在启动后依赖于外部服务。在这种情况下,您不想杀死应用程序,但也不想发送请求。 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