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

使用ALB Ingress注解配置流量重定向失效问题排查

解决AWS ALB Ingress重定向app.dev.net/mobile.dev.net到app.ops.test.com的配置问题

正确的Ingress配置清单

直接使用以下完整的Ingress资源配置,确保所有参数符合AWS ALB Ingress Controller的要求:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: redirect-ingress
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    # 定义重定向动作
    alb.ingress.kubernetes.io/actions.redirect-to-app: |
      {
        "Type": "redirect",
        "RedirectConfig": {
          "Protocol": "HTTPS",
          "Port": "443",
          "Host": "app.ops.test.com",
          "Path": "/$1",
          "Query": "$query",
          "StatusCode": "HTTP_301"
        }
      }
    # 启用访问日志(可选但建议开启)
    alb.ingress.kubernetes.io/access-log-enabled: "true"
    alb.ingress.kubernetes.io/access-log-s3-bucket: "your-access-log-bucket"
    alb.ingress.kubernetes.io/access-log-s3-prefix: "alb-logs"
spec:
  rules:
    - host: app.dev.net
      http:
        paths:
          - path: /(.*)
            pathType: ImplementationSpecific
            backend:
              service:
                name: redirect-to-app
                port:
                  name: use-annotation
    - host: mobile.dev.net
      http:
        paths:
          - path: /(.*)
            pathType: ImplementationSpecific
            backend:
              service:
                name: redirect-to-app
                port:
                  name: use-annotation

关键配置说明

  • 重定向动作注解:alb.ingress.kubernetes.io/actions.redirect-to-app 需严格遵循JSON格式:
    • Host 必须明确设置为目标域名app.ops.test.com
    • Path 使用/$1可保留原请求的路径部分(比如原请求app.dev.net/user/123会重定向到app.ops.test.com/user/123)
    • StatusCode 可选HTTP_301(永久重定向)或HTTP_302(临时重定向),按需选择
  • Ingress规则:每个需重定向的域名单独配置一条host规则,路径用/(.*)匹配所有请求路径;后端服务名称必须和注解定义的动作名称一致(此处为redirect-to-app),端口名称固定为use-annotation,表示使用注解中定义的动作而非实际K8s Service
  • 访问日志配置:确保指定的S3桶存在且ALB拥有写入权限,便于排查流量是否到达ALB

验证与排查步骤

  1. 检查Ingress资源状态
    执行命令确认Ingress同步状态:

    kubectl describe ingress redirect-ingress
    

    需确保Events中无错误,且ALB的ARN已正确关联

  2. 检查ALB规则
    登录AWS控制台找到对应ALB,查看监听器规则,确认每个源域名的请求都配置了对应重定向动作,且参数与Ingress注解一致

  3. 排查流量链路

    • DNS解析验证:用nslookup app.dev.net和nslookup mobile.dev.net确认解析到目标ALB域名
    • 安全组检查:确保ALB安全组允许80/443端口的入站流量,客户端IP在允许范围内
    • 日志校验:若已开启访问日志,检查S3桶内的日志确认请求是否被ALB接收;若无日志记录,重点排查DNS和安全组

常见错误点

  • 注解JSON格式错误:比如引号不匹配、逗号遗漏,会导致ALB无法生成正确规则
  • 后端服务名称与动作名称不一致:必须严格对应,否则Ingress Controller无法关联重定向动作
  • 路径匹配规则错误:若使用pathType: Exact仅会重定向根路径,需用ImplementationSpecific配合/(.*)匹配所有路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:52:29