我们使用kubectl部署新的映像(见下文),偶尔会看到kubectly rollout status命令完成,即使新的豆荚没有启动。
正如您在下面所看到的,kubectl甚至承认并记录了“新副本中的0已被更新”并继续进行。
这是个虫子吗?
我们没有任何活性/准备状态探测器配置。也许库贝克尔没有等足够长的时间来看看这个过程是否健康?我们的NodeJS应用程序在第3行(早期的require()语句)崩溃,在任何长时间运行的代码运行之前。
尝试1:
kubectl get deployment/documents
# Updating existing deployment documents:1.13.1.337660...
# Applying New Image Tag to Deployment...
kubectl set image deployment/documents documents=myrepo.com/documents:1.13.1.337660
deployment.apps/documents image updated
# Waiting for rollout to complete
kubectl rollout status deployment/documents
Waiting for deployment spec update to be observed...
Waiting for deployment spec update to be observed...
Waiting for deployment "documents" rollout to finish: 0 out of 1 new replicas have been updated...
Waiting for deployment "documents" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "documents" rollout to finish: 1 old replicas are pending termination...
deployment "documents" successfully rolled out即使新的吊舱有问题,并且没有启动/无法启动,这一尝试还是会退出!
企图2:
kubectl get deployment/documents
# Updating existing deployment documents:1.13.1.337660...
# Applying New Image Tag to Deployment...
kubectl set image deployment/documents documents=myrepo.com/documents:1.13.1.337660
# Waiting for rollout to complete
kubectl rollout status deployment/documents
Waiting for deployment "documents" rollout to finish: 0 of 1 updated replicas are available...这永远不会退出-正确,因为吊舱不能启动!
更新:我已经提交了一个关于这个的kubectl bug #1284。
发布于 2022-08-17 13:35:08
这不是窃听器。kubectl rollout status将永远等待,除非您传递--timeout=X,其中X是一个数字和单位,指示您希望它等待多长时间,例如1m、5m或10m。
即使如此,超时也不会回滚错误的更新,您需要检测故障(例如通过使用$?)并执行kubectl rollout undo
https://stackoverflow.com/questions/73389359
复制相似问题