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

Terraform资源kubernetes_ingress_v1是否有use-annotation等效配置?

kubernetes_ingress_v1 迁移时SSL重定向配置方案

复现原有use-annotation行为的方法

不需要找特殊字段替代use-annotation,按照以下规则配置即可:

  • 对于注解中通过alb.ingress.kubernetes.io/actions.ssl-redirect定义的自定义重定向动作,在v1版本Ingress的path配置中,service.port.number字段填写任意合法TCP端口值即可,生产环境通常填443。
  • 原理:AWS Load Balancer Controller 识别到后端service名称与注解中actions.后缀的自定义动作名(此处为ssl-redirect)完全匹配时,会直接读取注解内的动作配置生成ALB转发规则,完全不会使用你填写的port字段值。这个port字段仅为了满足Kubernetes Ingress v1 API的schema强制校验要求,没有实际生效逻辑。

对应配置片段参考:

path {
  path = "/*"
  backend {
    service {
      name = "ssl-redirect"
      port {
        number = 443 # 任意合法端口均可,控制器不会实际引用该值
      }
    }
  }
}

注意:请确保集群中不存在同名的真实Service资源,避免控制器错误匹配真实后端。

更简便的SSL重定向实现方式

不需要手动维护自定义动作注解和重定向路径规则,直接使用AWS Load Balancer Controller原生提供的全局SSL重定向注解即可:

  • 在原有annotations块中新增"alb.ingress.kubernetes.io/ssl-redirect" = "443"配置
  • 移除原有alb.ingress.kubernetes.io/actions.ssl-redirect注解
  • 移除所有path块中指向ssl-redirect服务的重定向配置

控制器会自动为80端口的HTTP监听器生成全局301重定向规则,将所有HTTP请求转发到443端口的HTTPS服务,不会漏配任何路径。
精简后的annotations参考:

annotations = {
  "kubernetes.io/ingress.class" = "alb"
  "alb.ingress.kubernetes.io/scheme" =  "internet-facing"
  "alb.ingress.kubernetes.io/certificate-arn" = var.create_acm_certificate ? aws_acm_certificate.eks_domain_cert[0].id : var.aws_acm_certificate_arn
  "alb.ingress.kubernetes.io/listen-ports" = "[{\"HTTP\": 80}, {\"HTTPS\":443}]"
  "alb.ingress.kubernetes.io/ssl-redirect" = "443" # 新增这行即可实现全局跳转
  "alb.ingress.kubernetes.io/ssl-policy" = "ELBSecurityPolicy-TLS-1-2-Ext-2018-06"
  "alb.ingress.kubernetes.io/healthcheck-path" = "/healthz"
}

这种方式的优势:

  • 减少大量重复的重定向路径配置,代码更简洁
  • 完全规避v1 Ingress API对port字段的格式校验问题
  • 不会出现漏配路径导致部分HTTP请求不跳转的问题
  • 重定向逻辑由控制器官方维护,兼容性比自定义动作更稳定

内容的提问来源于stack exchange,提问作者D-Wire

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:09:18