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

无法通过UI运行Argo Workflow,求AWS EKS环境下公网部署方案

在AWS EKS集群中实现Argo Workflows公网访问的方案

方案一:修正LoadBalancer Service配置(快速直接)

如果之前修改install.yaml没生效,大概率是配置未改对或负载均衡器安全组未开放端口,直接修改运行中的服务更可靠:

  • 编辑Argo Server的Service:
    kubectl edit service argo-server -n argo
    
  • 将spec.type修改为LoadBalancer,若需指定AWS负载均衡器类型(如NLB),可添加注解:
    metadata:
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-type: "nlb" # 可选,默认是Classic LB
    
  • 保存退出后,等待AWS创建负载均衡器,执行以下命令查看公网地址:
    kubectl get service argo-server -n argo
    
  • 最后检查负载均衡器的安全组,确保入站规则开放2746端口(Argo Server默认端口),允许公网访问(或指定IP范围)。

方案二:使用AWS ALB Ingress(推荐,支持HTTPS与域名)

这种方式更灵活,适合生产环境,需先在EKS集群中部署AWS Load Balancer Controller(原ALB Ingress Controller):

  1. 创建Ingress资源文件argo-ingress.yaml:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: argo-server-ingress
      namespace: argo
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing
        alb.ingress.kubernetes.io/target-type: ip
        # 可选:配置HTTPS,替换为你的ACM证书ARN
        alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:你的账号ID:certificate/证书ID
        alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
        alb.ingress.kubernetes.io/redirect-to-https: "true"
    spec:
      ingressClassName: alb
      rules:
      - host: argo.your-domain.com # 替换为你的域名
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: argo-server
                port:
                  number: 2746
    
  2. 应用Ingress配置:
    kubectl apply -f argo-ingress.yaml
    
  3. 等待AWS创建ALB,执行以下命令查看ALB的DNS地址:
    kubectl get ingress argo-server-ingress -n argo
    
  4. 将你的域名解析到该ALB的DNS地址即可通过域名访问。

方案三:NodePort + EC2节点公网IP(临时测试用)

适合快速测试,不推荐生产环境:

  • 编辑Argo Server的Service,将spec.type改为NodePort,可指定固定端口(如30000):
    spec:
      type: NodePort
      ports:
      - name: web
        port: 2746
        nodePort: 30000 # 可选,范围30000-32767
    
  • 打开EKS节点的安全组,添加入站规则,允许30000端口的公网访问。
  • 使用节点的公网IP + NodePort访问:http://<节点公网IP>:30000

排查之前修改install.yaml无效的原因

  • Argo Workflows控制器可能会覆盖Service配置,直接修改运行中的Service比修改install.yaml更可靠。
  • 未等待负载均衡器完全创建(AWS创建LB通常需要1-2分钟)。
  • 负载均衡器的安全组未开放2746端口的入站规则,导致无法访问。

内容的提问来源于stack exchange,提问作者Miloš Milutinov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:10:10