You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Argocd Image Updater未更新AKS中Deployment的问题排查

问题描述

在AKS环境中使用Argo CD Image Updater时遇到异常:初始部署使用镜像v1.0.0,推送v1.0.1新版本后,Image Updater日志显示更新成功,但Deployment仍在使用v1.0.0版本镜像。

应用配置文件

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: develop-argo
  namespace: argocd
  finalizers:
  - resources-finalizer.argocd.argoproj.io
  annotations:
    argocd-image-updater.argoproj.io/image-list: sessionservice=acr.azurecr.io/session_micro
    argocd-image-updater.argoproj.io/sessionservice.update-strategy: semver
    argocd-image-updater.argoproj.io/sessionservice.pull-secret: pullsecret:argocd/acr
    argocd-image-updater.argoproj.io/write-back-method: argocd
spec:
  project: default
  source:
    repo: abc/deployment.git
    targetRevision: development
    path: helm-charts/
    helm:
      valueFiles:
      - values.yaml
  destination:
    server: 'https://kubernetes.default.svc'
    namespace: dev
  syncPolicy:
    automated:
      prune: false
      selfHeal: true

Argo CD Image Updater日志

level=info msg="Successfully updated image 'acr.azurecr.io/session_micro:v1.0.0' to 'acr.azurecr.io/session_micro:v1.0.1', but pending spec update (dry run=false)" alias=sessionservice application=develop-argo image_name=session_micro image_tag=v1.0.0 registry=acr.azurecr.io
time="2024-10-08T16:37:56Z" level=debug msg="Using commit message: "
time="2024-10-08T16:37:56Z" level=info msg="Committing 1 parameter update(s) for application develop-argo" application=develop-argo
time="2024-10-08T16:37:56Z" level=info msg="Successfully updated the live application spec" application=develop-argo
time="2024-10-08T16:37:56Z" level=info msg="Processing results: applications=1 images_considered=1 images_skipped=0 images_updated=1 errors=0"
排查步骤
  • 检查Argo CD应用同步状态
    执行argocd app get develop-argo或登录Argo CD UI,确认应用是否处于OutOfSync状态。即使配置了selfHeal: true,如果同步触发延迟或Git仓库配置未正确更新,也可能导致资源未同步。

  • 验证Live Spec是否真的更新
    执行argocd app get develop-argo --show-manifest查看应用的实时清单,检查镜像版本是否已变为v1.0.1。如果实时清单已更新但Deployment仍用旧版本,说明Argo CD同步机制未生效。

  • 补充Helm字段映射注解
    当前配置未指定Image Updater需要更新的Helm values字段,导致工具无法正确定位镜像配置。假设你的values.yaml中镜像配置如下:

    image:
      repository: acr.azurecr.io/session_micro
      tag: v1.0.0
    

    需要给Application添加以下注解:

    argocd-image-updater.argoproj.io/sessionservice.helm.image-name: image.repository
    argocd-image-updater.argoproj.io/sessionservice.helm.image-tag: image.tag
    
  • 检查Argo CD同步权限与日志
    执行argocd app logs develop-argo查看同步日志,确认是否有权限更新Deployment资源。selfHeal生效的前提是Argo CD服务账号具备目标命名空间的资源修改权限。

  • 验证镜像拉取有效性
    在AKS节点执行crictl pull acr.azurecr.io/session_micro:v1.0.1测试镜像拉取,或查看Pod事件日志kubectl describe pod <pod-name> -n dev,确认是否因拉取权限问题导致Pod无法使用新镜像。

内容的提问来源于stack exchange,提问作者Karikaaalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:51:13