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

在ArgoCD添加Git仓库应用失败,遇argocd-repo-server查询超时错误

问题排查与解决:ArgoCD无法连接argocd-repo-server(DNS超时)

错误信息

ComparisonError
Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp: lookup argocd-repo-server: i/o timeout"

已验证操作

  • 重启过ArgoCD部署
  • 在ArgoCD Pod内手动克隆Git仓库成功
  • K8s DNS Pod运行状态正常

排查方向与解决步骤

1. 检查argocd-repo-server服务与Pod状态

先确认argocd-repo-server服务是否存在且正常:

kubectl get svc argocd-repo-server -n argocd

若服务不存在,重新部署repo-server组件;若存在,检查服务关联的Endpoints是否有正常Pod:

kubectl get endpoints argocd-repo-server -n argocd

如果Endpoints为空,查看repo-server Pod的运行状态与日志,排查启动异常:

kubectl get pods -n argocd | grep argocd-repo-server
kubectl logs argocd-repo-server-xxx -n argocd  # 替换xxx为实际Pod名称

2. 检查命名空间内的网络策略

如果集群启用了NetworkPolicy,可能限制了ArgoCD组件间的通信。查看argocd命名空间下的网络策略:

kubectl get networkpolicy -n argocd

确保存在允许argocd-server访问argocd-repo-server的策略,可临时删除网络策略验证是否为该问题导致。

3. 验证ArgoCD组件Pod的DNS解析能力

进入argocd-server Pod,直接测试解析argocd-repo-server:

kubectl exec -it argocd-server-xxx -n argocd -- nslookup argocd-repo-server

若解析失败,检查Pod的DNS配置文件是否正常:

kubectl exec -it argocd-server-xxx -n argocd -- cat /etc/resolv.conf

确认nameserver指向集群DNS服务的ClusterIP(通常是kube-dns或coredns的IP),若配置异常,重启argocd-server Pod或检查节点DNS设置。

4. 检查ArgoCD配置文件的自定义地址

查看argocd-cm ConfigMap,确认是否错误配置了repo-server地址:

kubectl get configmap argocd-cm -n argocd -o yaml

若存在repo.server字段,删除该配置项并重启argocd-server。

5. 验证集群DNS的跨命名空间解析能力

在其他命名空间创建临时Pod,测试跨命名空间解析argocd-repo-server:

kubectl run -it --rm test-dns --image=busybox -- nslookup argocd-repo-server.argocd.svc.cluster.local

若解析失败,即使DNS Pod运行正常,可能存在CoreDNS配置错误或DNS服务ClusterIP无法访问的问题,需检查CoreDNS的Corefile配置或DNS服务的可达性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:23:12