Ingress: HTTP(S) 负载均衡与 TLS 安全连接配置
1. 引言
在现代应用开发中,微服务架构正变得越来越流行。它允许将多个内部服务分开部署和管理,这些服务可以用不同的语言编写,由不同的团队维护。而 Kubernetes 提供了多种工具来创建、发现、连接和暴露这些服务,其中 Ingress 在 HTTP(S) 负载均衡和服务暴露方面发挥着重要作用。
2. Ingress 基础
2.1 与 LoadBalancer 类型服务的对比
之前我们常使用 LoadBalancer 类型的服务来创建外部 IP,它提供的是第 4 层(L4)负载均衡,在网络层平衡请求,可支持多种协议(如 TCP、UDP、SCTP)。但如果要暴露 HTTP 服务,需要自己实现 TLS 终止处理,且所有流量会根据规则路由到一组 Pods,无法直接在同一个负载均衡器上暴露多个独立服务。
而第 7 层(L7)负载均衡器,也就是 Ingress,在 HTTP 请求层进行负载均衡,能做更多高级操作,如终止 HTTPS 连接、基于路径路由等。在 Kubernetes 中,通过 Ingress 对象来创建 HTTP 负载均衡器。
2.2 Ingress 的优势
Ingress 可以将多个内部服务置于单个外部 IP 之后进行负载均衡,能根据 URI 路径(如 /foo, /bar)、主机名(如 foo.example.com, bar.example.com)或两者来将 HTTP 请求定向到不同的后端服务。这种将多个服务运行在单个 IP 上,并在单个域名下提供不同路径服务的能力是 Ingress 独有的。
超级会员免费看
订阅专栏 解锁全文
15

被折叠的 条评论
为什么被折叠?



