当前位置: 首页 > 知识库问答 >
问题:

为什么要将负载平衡器类型的服务放在Nginx入口之前

卫乐童
2023-03-14

我发现k8s在生产中的一些用法,这些用法与公共云一起使用,将负载均衡器类型的服务放在Nginx入口之前。(您可以从下面的yaml中找到一个示例。)

如我所知,入口可用于向公众公开内部服务,那么在入口前面放置负载均衡器有什么意义呢?我可以删除该服务吗?

apiVersion: v1
kind: Service
metadata:
  annotations:
  labels:
    helm.sh/chart: ingress-nginx-3.27.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.45.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
    kubernetes.io/elb.class: union
  name: ingress-nginx-controller
  namespace: ingress-nginx
spec:
  type: LoadBalancer
  loadBalancerIP: xxx.xxx.xxx.xxx
  externalTrafficPolicy: Cluster
  ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: http
    - name: https
      port: 443
      protocol: TCP
      targetPort: https
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/component: controller

共有2个答案

百里金林
2023-03-14

因为在这种情况下,入口控制器本身在Pod中运行,所以它需要像在Pod中运行的其他任何东西一样暴露于互联网。一些入口控制器的实际代理在外部运行,如AWS ALB。但Nginx只是像往常一样在容器中运行。

佘茂才
2023-03-14
...so what's the point to put a loadbalancer in front of the ingress?

通过这种方式,您可以利用云提供商LB设施(如multi-az等),然后通过入口,您可以使用基于路径或名称的虚拟主机进一步控制集群中服务的路由。

Can I delete that service?

入口不进行端口映射或POD选择,并且您无法使用DNS解析入口名称。

 类似资料:
  • 当我将服务与ClusterIP类型和2个POD一起使用时,流量分布在2个POD上。 我找到了另一种服务类型LoadBalancer。这两种服务的区别是什么?LoadBalancer与ClusterIP有何不同? 谢谢

  • 我正在使用入口从库伯内特斯集群外部公开我的服务,因此我不需要库伯内特斯来配置负载均衡器。因此,我创建了一个ClusterIP服务: 这很有效-我有一个单独的入口和部署设置,我可以很好地访问该应用程序。 然而,Kubernetes坚持无论如何都要尝试创建负载平衡器。因为它在我的AWS帐户中没有这样做的权限,所以我创建的每个服务都会记录如下错误: 我假设它试图描述BeloadBalancers,因为它

  • 试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv

  • 我使用的是Kubernetes服务,但我对服务中的外部IP的参数有点困惑: 如果有路由到一个或多个群集节点的外部IP,则可以在这些外部IP上公开Kubernetes服务。通过服务端口上的外部IP(作为目标IP)进入集群的流量将路由到其中一个服务endpoint。外部IP不由Kubernetes管理,由集群管理员负责。 我不确定负载均衡器类型服务和使用外部IP的服务之间的区别。 我可以使用负载平衡器

  • 所以我正在使用库伯内特斯作为一个辅助项目,它很棒。运行像我这样的小项目更便宜(一个3-5个实例的小集群基本上为我提供了大约30美元/月的GCP所需的一切)。 我唯一努力的领域是尝试使用kubernetes入口资源映射到集群并扇出到我的微服务(它们是小型Go或节点后端)。我有入口映射到不同服务的配置设置,没有问题。 我知道,在创建入口资源时,您可以很容易地让GCP启动负载平衡器。这很好,但这也意味着

  • 我知道,当我们想用一个负载平衡器/公共IP公开多个服务/路由时,可以使用入口。 现在我想公开我的Nginx服务器。我有两个选择 设置瞧,我得到了公共IP 使用Nginx入口控制器 现在我可以用选项1完成我的工作了,我什么时候或者为什么要选择选项2?使用带有入口的nginx而不使用入口有什么好处?