知识卡片
Ingress解耦应用路由与基础设施路由
内容
把每个要对外暴露的服务都配一个 LoadBalancer 类型的 Service,是能直接工作的最简单方案,但代价是每个服务各领一个独立公网 IP,且因为流量直接怼到各个服务上,没有机会在中间统一插入 TLS 终止、按域名路由这类网络层配置。Kubernetes Ingress 的解法是引入一层间接:Ingress 对象只声明”我要的路由和 TLS 终止规则长什么样”(期望状态),真正去执行这些规则、把外部流量按规则转发进集群内部的是 Ingress Controller(一个基于 Nginx/HAProxy/Envoy 之类反向代理实现的常驻工作负载)。这样集群只需要一个公网入口,网络层面的配置也能集中管理,而不是散落在每个暴露出去的服务里。发散:这一层间接顺带带来一个组织上的好处——应用路由(网关内部的业务路由规则)归开发团队维护,基础设施路由和网络配置(Ingress Controller、TLS 证书)归平台团队维护,两拨人的职责边界被 Ingress 这个对象干净地切开,谁都不用碰对方的那一半。
参考来源
《Cloud Native Spring in Action》第9章《API gateway and circuit breakers》