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

ArgoCD 2.5.x高可用安装遇Redis Pod初始化失败问题求助

ArgoCD高可用安装中argocd-redis-ha-server Pod初始化失败的解决方法

问题背景

在Kubernetes v1.23.13集群部署ArgoCD 2.5.x高可用版本时,argocd-redis-ha-server-0 Pod无法完成初始化,config-init容器执行失败,报错如下:

Start...

Initializing config..

Copying default redis config..

to '/data/conf/redis.conf'

Copying default sentinel config..

to '/data/conf/sentinel.conf'

Identifying redis master (get-master-addr-by-name)..

using sentinel (argocd-redis-ha), sentinel group name (argocd)

Could not connect to Redis at argocd-redis-ha:26379: Try again

Could not connect to Redis at argocd-redis-ha:26379: Try again

Could not connect to Redis at argocd-redis-ha:26379: Try again

Did not find redis master ()

Identify announce ip for this pod..

using (argocd-redis-ha-announce-0) or (argocd-redis-ha-server-0)

identified announce ()

/readonly-config/init.sh: line 239: Error: Could not resolve the announce ip for this pod.: not found

解决方案

1. 修复Pod IP解析问题

报错核心是无法自动获取Pod的announce IP,可通过手动注入Pod IP环境变量解决:

  • 编辑argocd-redis-ha-server StatefulSet:
    kubectl edit statefulset argocd-redis-ha-server -n argocd
    
  • 在spec.template.spec.initContainers中找到config-init容器,添加环境变量配置:
    env:
      - name: REDIS_HA_ANNOUNCE_IP
        valueFrom:
          fieldRef:
            fieldPath: status.podIP
    
  • 保存退出后,StatefulSet会自动重建Pod,此时config-init容器可获取到正确的Pod IP。

2. 调整Headless Service的就绪地址发布策略

原安装清单中的argocd-redis-ha-announce Headless Service默认未开启publishNotReadyAddresses,导致未就绪的Pod无法被DNS解析,修改该Service:

apiVersion: v1
kind: Service
metadata:
  name: argocd-redis-ha-announce
  namespace: argocd
spec:
  clusterIP: None
  publishNotReadyAddresses: true # 新增该配置,允许未就绪Pod被DNS解析
  ports:
    - port: 6379
      name: redis
    - port: 26379
      name: sentinel
  selector:
    app.kubernetes.io/name: argocd-redis-ha

应用修改:

kubectl apply -f <上述service文件路径> -n argocd

3. 检查Sentinel Service及端点状态

确认argocd-redis-ha Service关联的端点正常就绪:

  • 查看Service状态:
    kubectl get svc argocd-redis-ha -n argocd
    
  • 查看端点就绪情况:
    kubectl get endpoints argocd-redis-ha -n argocd
    

如果端点未就绪,需排查argocd-redis-ha-server Pod是否有其他启动异常,比如资源不足、镜像拉取失败等。

4. 匹配兼容的Redis HA镜像版本

确保使用的Redis HA镜像版本与ArgoCD 2.5.x版本完全匹配,例如替换为对应版本的稳定镜像:

kubectl set image statefulset/argocd-redis-ha-server -n argocd redis-ha=quay.io/argoproj/argocd-redis-ha:v2.5.16

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:40:15