gpt4 book ai didi

kubernetes - 将 nginx 公开为负载均衡器与入口 Controller 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 04:56:34 26 4
gpt4 key购买 nike

我知道当我们想要使用单个负载均衡器/公共(public) IP 公开多个服务/路由时,可以使用 Ingress。

现在我想公开我的 Nginx 服务器。我有两个选择

  • 设置 service type as LoadBalancer瞧,我获得了公共(public) IP
  • 使用Nginx Ingress Controller

  • 现在我可以使用选项 1 完成我的工作,什么时候或为什么我会选择选项 2 使用带有 Ingress 而没有 Ingress 的 nginx 有什么好处?

    最佳答案

    入口规则(ingress)和入口 Controller 是有区别的。所以,从技术上讲,nginx 入口 Controller 和 LoadBalancer 类型的服务是没有可比性的。您可以比较入口资源和 LoadBalancer 类型的服务,如下所示。

    一般来说:
    LoadBalancer类型服务是一个 L4(TCP) 负载平衡器。您将使用它向外界公开单个应用程序或服务。它将根据目标 IP 地址和端口平衡负载。
    Ingress type 资源将创建一个 L7(HTTP/S) 负载平衡器。您可以使用它同时公开多个服务,因为 L7 LB 是应用程序感知的,因此它可以根据应用程序状态确定将流量发送到哪里。

    入口和入口 Controller 关系 :
    Ingress , 或 ingress rulesingress controller 的规则下面来分配负载。入口 Controller 获取数据包,检查入口规则并确定将数据包传递到哪个服务。

    Nginx 入口 Controller

    Nginx 入口 Controller 实际上使用 LoadBalancer 类型的服务作为集群的入口点。然后是检查入口规则并分配负载。这可能非常令人困惑。您创建一个入口资源,它会创建 HTTP/S 负载均衡器。它还为您提供了一个外部 IP 地址(例如在 GKE 上),但是当您尝试访问该 IP 地址时,连接被拒绝。

    结论:

    如果您只有一个应用程序,您将使用负载均衡器类型的服务,例如 myapp.com您希望映射到 IP 地址。

    如果您有多个应用程序,您将使用入口资源,例如 myapp1.com , myapp1.com/mypath , myapp2.com , .., myappn.com映射到一个 IP 地址。

    由于入口是 L7,它能够区分 myapp1.commyapp1.com/mypath ,它能够将流量路由到正确的服务。

    关于kubernetes - 将 nginx 公开为负载均衡器与入口 Controller 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50966300/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com