Kubernetes progressDeadlineSeconds未正确超时
我已将progressDeadlineSeconds设置为120秒 我部署并运行Kubernetes progressDeadlineSeconds未正确超时,kubernetes,kubectl,Kubernetes,Kubectl,我已将progressDeadlineSeconds设置为120秒 我部署并运行kubectl卷展栏状态部署mydeployment 部署失败,1个更新副本中有0个可用-CrashLoopBackOff 但kubectl仍然永远挂在那里,并显示以下消息:等待部署“mydeployment”卷展结束:1个更新副本中的0个可用… 为什么会发生这种情况,progressDeadlineSeconds会强制它失败,并导致kubectl卷展栏状态部署以非零返回代码退出,对吗?您是正确的,kubectl卷展
kubectl卷展栏状态部署mydeployment
部署失败,1个更新副本中有0个可用-CrashLoopBackOff
但kubectl仍然永远挂在那里,并显示以下消息:等待部署“mydeployment”卷展结束:1个更新副本中的0个可用…
为什么会发生这种情况,progressDeadlineSeconds会强制它失败,并导致
kubectl卷展栏状态部署
以非零返回代码退出,对吗?您是正确的,kubectl卷展栏状态
如果部署已超过进度截止日期,则返回非零退出代码:
.spec.progressDeadlineSeconds
是一个可选字段,用于指定
要等待部署进行的秒数
在系统报告部署失败之前
正在进行-显示为具有Type=progressing
的条件,
Status=False
。并且Reason=progressdeadlineextended
处于
资源。部署控制器将继续重试
部署。默认值为600。将来,一旦自动
将实施回滚,部署控制器将回滚
一旦观察到这种情况就立即部署
如果指定,此字段需要大于
.spec.minReadySeconds
这让我们想到
.spec.minReadySeconds
是一个可选字段,用于指定
新创建的Pod应使用的最小秒数
准备好了,没有任何容器发生碰撞,以供考虑
可用。默认为0(Pod将被视为可用)
一旦准备好)
如果没有精确的部署配置,很难判断问题出在哪里,但需要检查的内容很少:
- 尝试设置
和progressDeadlineSeconds
,记住后者必须具有较小的值minReadySeconds
与progressDeadlineSeconds
副本1一起使用时可能不受尊重。检查
参数,查看它是否允许部署完全不可用maxUnavailable
- 作为一种解决方法,您可以为
命令指定超时时间。例如:kubectl卷展栏状态
kubectl卷展栏状态部署mydeployment--timeout=120s
- 如果不想等待卷展栏完成,则可以使用
。您将不得不通过运行--watch=false
和kubectl descripe deployment
命令手动检查状态,这可能并不理想kubectl get deployment
请让我知道这是否有帮助。您可以通过编辑问题来分享您的部署yaml吗?您的Kubernetes版本是什么?