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

EKS上ArgoCD Server Ingress返回404问题排查求助

问题分析:ArgoCD通过Ingress访问返回404(端口转发正常)

结合你提供的Terraform配置、Helm Values文件及Ingress描述信息,可能的原因及修复建议如下:

1. Ingress Class 未正确关联NGINX控制器

从kubectl describe ingress结果可见Ingress Class: <none>,但你的Helm Values中仅使用了旧版注解kubernetes.io/ingress.class: "nginx"。在Kubernetes 1.19+版本中,官方已推荐使用ingressClassName字段替代该注解,若集群使用较新版本K8s,旧注解可能无法被NGINX Ingress控制器识别,导致Ingress未绑定到正确的控制器,从而返回404。

修复建议:
在Helm Values的server.ingress节点下添加ingressClassName字段:

server:
  ingress:
    enabled: true
    ingressClassName: "nginx" # 新增该行,优先使用此字段绑定控制器
    annotations:
      kubernetes.io/ingress.class: "nginx" # 可保留以兼容旧版本
      # 其他原有注解...

2. SSL Passthrough功能未启用或端口映射冲突

你的Ingress配置了nginx.ingress.kubernetes.io/ssl-passthrough: true注解,该功能要求NGINX Ingress控制器启动时必须添加--enable-ssl-passthrough参数,若控制器未开启此参数,会导致SSL流量无法正确转发到ArgoCD Server,进而出现404。

另外,从Ingress描述的Backend信息argocd-server:443 (172.31.100.155:8080)可见:ArgoCD Server的Service 443端口映射到了容器的8080端口,但ArgoCD Server默认8080是HTTP端口,8443才是HTTPS端口。若启用SSL Passthrough,需确保Service端口与容器端口匹配正确。

检查与修复:

  • 执行kubectl get deployment nginx-ingress-controller -n <ingress-namespace>,查看控制器启动参数是否包含--enable-ssl-passthrough
  • 执行kubectl get svc argocd-server -n argocd,确认Service的443端口是否映射到容器的8443端口(而非8080)

3. Ingress路径规则配置异常

当前Ingress仅配置了根路径/,虽然端口转发正常,但如果NGINX Ingress的路径匹配模式存在异常(如精确匹配而非前缀匹配),也可能导致子路径请求返回404。

验证建议:
临时添加以下注解到Ingress配置中测试:

nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$1

4. 次要配置问题(需修正但不直接导致404)

你的Helm Values中kustomize.buildOptions: "--enable_apha_plugins"存在拼写错误,应为--enable_alpha_plugins,该错误会导致Kustomize插件功能异常,建议修正。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:12:35