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

K8s前置AWS ALB时如何配置Ingress使流量经过Kong网关

问题核心结论

你写的第二种Ingress配置完全不会经过Kong网关,这个配置的逻辑是让AWS ALB Ingress Controller直接创建ALB规则,把/foo路径的流量直接转发到foo-service的5000端口,完全绕过了Kong代理层,属于配置逻辑错误。

正确的流量链路逻辑

当你选择用ALB作为Kong的前置入口时,整个流量路径应该是:
用户请求 → AWS ALB → Kong Proxy服务 → 后端业务服务(foo-service)

这里两层组件的职责完全拆分:

  • 第一层(ALB层):只做公网入口、SSL证书卸载、基础流量转发,所有请求不管什么路径,全部统一转发到Kong Proxy的服务端口,不做路径级别的后端业务路由
  • 第二层(Kong层):负责所有API网关能力,包括路径路由、认证、限流、日志、插件逻辑,根据配置的Kong Ingress规则把流量转发到对应的后端业务服务

你当前配置的错误点

你给业务写的ALB类型Ingress,相当于跳过了Kong层,让ALB直接对接业务服务,把Kong整个架空,之前给Kong配置的所有插件、路由规则都不会生效。

正确配置步骤

第一步:创建唯一的ALB Ingress,全量流量转发到Kong Proxy

整个集群只需要这一个ALB Ingress对接Kong,不需要给每个业务单独创建ALB Ingress,配置示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: kong-alb-entry
  namespace: kong # 和Kong部署的命名空间保持一致
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/certificate-arn: "你的证书ARN"
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/ssl-redirect: '443'
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            # 填写实际的Kong Proxy服务名,默认一般为kong-proxy
            name: kong-proxy
            port:
              # Kong默认代理端口为80,如有自定义修改为对应端口
              number: 80

第二步:业务服务的Ingress仍然使用Kong类型

所有业务路由不需要加任何ALB相关注解,和你最开始使用Kong的配置完全一致,指定ingressClassName: kong即可,Kong会自动识别这些规则,处理到对应业务服务的转发逻辑,配置示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: foo
  namespace: default
spec:
  ingressClassName: kong
  rules:
  - http:
      paths:
      - path: /foo
        pathType: Prefix
        backend:
          service:
            name: foo-service
            port:
              number: 5000

补充注意事项

  • 不需要给每个业务服务单独创建ALB Ingress,所有业务都共用前面创建的公网ALB入口,路径路由全部交给Kong处理即可
  • 如果需要给ALB加特殊配置(比如WAF、访问日志、安全组规则),全部在第一步的kong-alb-entry这个Ingress的注解里添加即可,不要修改业务层的Kong Ingress
  • 这种架构下ALB只做入口层转发,所有网关能力还是由Kong提供,和之前直接用NLB/CLB对接Kong的使用体验没有区别,只是把最外层的负载均衡换成了ALB

内容的提问来源于stack exchange,提问作者VINAY KUMAR RT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:31:11