繁体   English   中英

在Azure AKS中使用Kubernetes Ingress的优点是什么?

[英]What are the Advantages of using Kubernetes Ingress in Azure AKS

我的理解是,将Service类型设置为LoadBalancer会创建一个新的Azure负载均衡器并为Service分配IP地址。 这是否意味着我可以使用端口80拥有多个服务? 如果我的Service (ASP.NET核心应用程序)背后的应用程序可以处理TLS和HTTPS,为什么我不应该只使用LoadBalancer来处理我想要暴露给互联网的任何Service

如果我不关心TLS终止,那么使用Ingress有什么好处(你可以让Cloudflare处理TLS终止)? 如果有的话,它会通过为每个请求添加额外的跃点来减慢速度。

更新

下面的一些答案提到创建负载平衡器的成本很高。 应该注意的是,Azure上的负载均衡器是免费的,但是他们会为IP地址收取费用,他们会免费为您提供5个IP地址。 因此,对于您希望公开最多五个IP地址的小型项目,它基本上是免费的。 除此之外,你可能想看看广告使用Ingress

如果您不使用Ingress一些答案也会提到额外的复杂性。 我已经提到Cloudflare可以为我处理TLS终止。 我还发现了external-dns Kubernetes项目在Cloudflare中创建指向负载均衡器IP地址的DNS条目? 在我看来,削减Ingress降低了复杂性,因为我不得不配置和管理。 Ingress的选择也是巨大的,我可能会选择一个错误的选项,这会在一段时间后无法维护。

不,你不能在端口80上监听多个服务,因为负载均衡器不知道在哪里路由它们(但是,入口会)。 如果您可以在不同的端口上托管每个服务,则可以使用负载均衡器。 或者,如果每个服务都有公共IP,并且每个服务都有不同的后端端口,则可以实现此目的。

quote:您输入的协议和端口组合与此负载均衡器使用的另一个规则匹配。 负载均衡器上的每个负载均衡规则和入站NAT规则的协议和端口组合必须是唯一的。

再次,如果您是开发人员,您可能没有意识到在入口管理证书更方便,而不是在所有应该可访问的单个容器上

有一个很好的文章在这里它描述的服务(负载均衡)和入口的差异。

总之,您可以在群集中拥有多个服务(负载均衡器),其中每个应用程序彼此独立地公开。 主要问题是添加的每个Load Balancer都会增加解决方案的成本,并且不一定要这样,除非您严格要求这样做。

如果多个应用程序侦听端口80,并且它们位于容器内,则没有理由您还需要将其映射到主机节点中的端口80。 您可以将其分配给任何端口,因为服务将为您处理动态端口映射。

在这种情况下,入口最好,因为您可以在端口80上有一个入口列表,并根据许多变量将流量路由到正确的服务,例如:

  • 网址路径
  • 请求参数
  • 还有很多其他的

Ingress不只是用于TLS终止,简单来说就是一个代理\\网关,它将控制路由到正确的服务,TLS终止只是其中一个功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM