Kubernetes Ingress:HTTP(S)负载均衡与TLS安全连接
在现代应用开发中,微服务架构正变得越来越流行。通过这种架构,我们可以拥有多个可单独部署和管理的内部服务,这些服务可能由不同的团队负责。我们可以使用开源工具添加独立的服务,或者将用不同语言编写的应用程序的不同组件组合在一起。
1. 传统负载均衡与Ingress的对比
在之前的实践中,我们通常使用LoadBalancer类型的Service来创建外部IP,这提供了所谓的第4层(L4)负载均衡器。L4负载均衡器在网络层平衡请求,可以处理多种协议,如TCP、UDP、SCTP。我们只需配置所需的协议和端口,就能获得一个可在Pod之间平衡流量的IP。然而,如果通过负载均衡器暴露HTTP服务,我们需要自己实现TLS终止处理(即配置证书并运行HTTPS端点),并且所有到该端点的流量将根据matchLabels规则路由到一组Pod。此外,无法直接在同一个负载均衡器上暴露两个或更多独立的服务(尽管可以在内部将请求代理到其他服务)。
当专门发布HTTP应用时,第7层(L7)负载均衡器可能会更有用。L7负载均衡器在HTTP请求层进行平衡,可以执行更多高级操作,如终止HTTPS连接(即它会为你处理HTTPS细节),并执行基于路径的路由,从而可以使用多个服务为单个域名主机提供服务。在Kubernetes中,HTTP负载均衡器是通过Ingress对象创建的。
Ingress允许我们将多个内部服务置于单个外部IP之后,并进行负载均衡。我们可以根据URI路径(如/foo、/bar)、主机名(如foo.example.com、bar.example.com)或两者来将HTTP请求定向到不同的后端服务。Ingress的独
超级会员免费看
订阅专栏 解锁全文
1292

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



