我知道,当我们想用一个负载平衡器/公共IP公开多个服务/路由时,可以使用入口。
现在我想公开我的Nginx服务器。我有两个选择
服务类型为LoadBalancer
瞧,我得到了公共IP现在我可以用选项1完成我的工作了,我什么时候或者为什么要选择选项2?使用带有入口的nginx而不使用入口有什么好处?
公认的答案已经涵盖了很多内容。除此之外,我在aws中使用ingress controller的原因是为了将成本降到最低。我有多个web应用程序正在kubernetes群集aws中运行。为了访问这些应用程序,而不是将单个应用程序公开为LoadBalancer并创建单个ELB(每个ELB都要花钱),我将ingress controller服务公开为LoadBalancer,并为每个ELB创建了ingress规则。
步骤包括:
入口规则(ingress)和入口控制器之间存在差异。因此,从技术上讲,nginx入口控制器和LoadBalancer类型服务没有可比性。您可以比较入口资源和LoadBalancer类型服务,如下所示。
一般来说:
负载平衡器类型服务是L4(TCP)负载平衡器。您可以使用它向外部世界公开单个应用程序或服务。它将根据目标IP地址和端口平衡负载。
入口
类型资源将创建一个L7(HTTP/S)负载均衡器。您将使用它同时公开多个服务,因为L7 LB是应用程序感知的,因此它可以根据应用程序状态确定将流量发送到哪里。
入口和入口控制器关系:
入口规则是入口控制器分配负载所遵循的规则。入口控制器获取数据包,检查入口规则并确定将数据包发送到哪个服务。
Nginx入口控制器
Nginx ingress controller使用LoadBalancer类型的服务作为集群的入口点。然后is检查入口规则并分配负载。这可能非常令人困惑。如果创建入口资源,它将创建HTTP/S负载平衡器。它还为您提供一个外部IP地址(例如在GKE上),但当您尝试访问该IP地址时,连接被拒绝。
结论:
如果您有一个应用程序,例如要映射到IP地址的myapp.com
,您将使用Loadbalancer类型服务。
如果您有几个应用程序,例如myapp1.com
、myapp1.com/mypath
、myapp2.com
、...、myappn.com
映射到一个IP地址,您将使用入口资源。
由于入口是L7,它能够区分myapp1.com
和myapp1.com/mypath
,它能够将流量路由到正确的服务。
负载均衡器的作用是将流量转发到主机。在这方面,ingress与负载均衡器有何不同?另外,与Amazon ELB和ALB相比,kubernetes内部的负载均衡器是什么概念?
GCP为GKE负载平衡器提供了自己的托管入口控制器。我还看到了部署和利用Nginx入口控制器的文档。 https://cloud.google.com/community/tutorials/nginx-ingress-gke 内置入口控制器也在负载均衡器级别处理SSL终止。是否有特定的流量处理能力使Nginx成为GKE更好的入口控制候选者?
我不确定负载平衡如何与入口一起工作<如果我理解正确,实际情况是这样的: 我看不到负载平衡是如何执行的<我画的上述方案有什么错<你能帮我纠正一下吗? 注意: -以下答案告诉我入口控制器本身属于“loadbalancer”类型:入口服务类型 -我使用kind ClusterIP,因为我不想将loadbalancer暴露给外部世界。以下文章不支持此声明,其中负载平衡器将由服务提供: https://me
我正在尝试将外部HTTPS(L7)负载平衡器与公开为区域网络endpoint组(NEG)的NGINX入口连接起来。我的Kubernetes集群(在GKE中)包含两个web应用程序部署,我将其公开为ClusterIP服务。 我知道NGINX Inete对象可以直接公开为TCP负载均衡器。但是,这不是我想要的。相反,在我的架构中,我想使用外部HTTPS负载均衡器来负载平衡HTTPS请求。我希望这个外部
Google云网络负载平衡器是一个直通负载平衡器,而不是代理负载平衡器。()https://cloud.google.com/compute/docs/load-balancing/network/)。 一般来说,我在直通LB上找不到任何资源。HAProxy和Nginx似乎都是代理LBs。我猜直通LB会将客户端直接重定向到服务器。在什么情况下,这将是有益的? 除了传递和代理之外,还有其他类型的负载
我们的团队正计划从 Spring CloudNetflix功能区到Spring Cloud LoadBalancer,并使用spring-cloud d-kubernetes作为发现客户端。 使用Spring Cloud Gateway而不是Zuul 和Resilience4j而不是Hystrix。 需要进行哪些必要的更改,我们是否需要更改等效属性。您能帮助我们从哪里开始吗?