如何在kubernetes中查找更新部署是否成功完成?

如何在kubernetes中查找更新部署是否成功完成?,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,我正在使用KubernetesAPI在节点中部署部署。更新部署映像时,我获得了200个状态。但是映像名称错误,因此部署更新已停止,并出现errImagePull错误。kubernetes中是否有错误回调机制,或者我必须手动调试它?在大多数情况下,您必须手动调试它,并且异步运行;但是你有一些东西可以看 有关于它控制的豆荚数量处于何种状态的数据。最容易检查的是所有副本计数都匹配,尽管这不是100%。要检查的稍微棘手的事情是:;该文档中列出了一些状态组合 您可以做的另一件事是获取部署的pod选择器,然

我正在使用KubernetesAPI在节点中部署部署。更新部署映像时,我获得了200个状态。但是映像名称错误,因此部署更新已停止,并出现errImagePull错误。kubernetes中是否有错误回调机制,或者我必须手动调试它?

在大多数情况下,您必须手动调试它,并且异步运行;但是你有一些东西可以看

有关于它控制的豆荚数量处于何种状态的数据。最容易检查的是所有副本计数都匹配,尽管这不是100%。要检查的稍微棘手的事情是:;该文档中列出了一些状态组合

您可以做的另一件事是获取部署的pod选择器,然后(或者更好地说)匹配该选择器的pod。在您的特定情况下,如果任何POD处于
ErrImagePull
状态,则表明有问题

这里唯一模糊的地方,也是导致解决方案不明确的地方,是
CrashLoopBackOff
state。假设您正在启动一个应用程序容器和一个数据库容器。应用程序容器在启动时尝试连接到数据库,如果失败,则立即退出。也就是说数据库启动需要60-120秒。库伯内特斯将同时启动这两个项目。由于数据库尚未就绪,应用程序将退出;重试几次后,pod进入
CrashLoopBackOff
,这是正常的。数据库启动后,应用程序也将成功启动


我不认为有什么好方法可以区分“依赖项还没有准备好”、“依赖项永远不会因为配置错误而准备好”和“代码只是有缺陷”的不同
CrashLoopBackOff
状态。当我以前做过这件事时,我使用了试探法,比如说超时,如果在5分钟内没有任何进展,部署还没有100%就绪,那么它一定失败了。不过,这有点不令人满意。

是一个不错的选择,如果状态更改,它将返回pod事件,您可以对这些更改做出反应。对于kubectl是:
kubectl get pod-w-n ns | grep you pod
@Ray我们如何在更新部署时找到新的pod名称您可以使用
labelSelector
选择该pod,
请求.addQueryParam(“labelSelector”,您的labelSelector)。对于kubectl:
kubectl get po-n您的命名空间-lk=v
是否有任何方法可以找到创建pod的部署生成。假设我有一个名为pod-123的pod,有没有办法找到这个pod(pod-123)创建的部署生成号。更好的方法是,这是kubernetes的建议,让您的服务不会因为另一个服务关闭而崩溃。在您的示例中,您的应用程序不应该进入CrashLoopBackoff,而应该等待数据库可用。查看其他解释