Argo CD如何缩短应用从Processing转为Degradated状态的等待时长
可以通过调整配置实现1-2分钟内完成状态切换,具体操作如下:
配置方法
1. 调整Deployment的progressDeadlineSeconds参数(推荐方案)
Kubernetes Deployment默认的滚动更新超时阈值progressDeadlineSeconds为600秒(10分钟),Argo CD的应用健康状态依赖K8s对资源的状态判定,只有当K8s标记Deployment滚动更新失败后,Argo CD才会将应用状态更新为Degraded。
你可以直接在对应Deployment的配置中修改该参数,设置为期望的超时时长,示例如下:
apiVersion: apps/v1 kind: Deployment metadata: name: your-deployment-name spec: progressDeadlineSeconds: 120 # 单位为秒,此处设置为2分钟超时 replicas: 1 selector: matchLabels: app: your-app template: # 后续Pod模板配置保持不变
配置推送到Git仓库同步后,后续出现镜像拉取失败等滚动更新异常时,K8s会在设置的时长内标记Deployment更新失败,Argo CD同步到状态后就会快速切换应用健康状态。
2. 全局修改Argo CD健康检查规则(可选)
如果需要对所有应用统一生效,不想逐个修改Deployment配置,可以修改Argo CD的argocd-cm ConfigMap,添加自定义的Deployment健康检查规则,覆盖默认的状态判定逻辑。不过该方案会影响所有应用的健康判定逻辑,容易造成正常发布被误判为失败,非必要不推荐使用。
注意事项
设置超时时长时需要预留足够的镜像拉取、容器启动、业务健康检查的时间,避免正常发布流程被误判为失败。
内容的提问来源于stack exchange,提问作者Andriy Kopachevskyy
相关产品推荐
相关产品推荐

