首页 > 解决方案 > nginx入口控制器和云负载均衡器之间有什么关系?

问题描述

我将一个部署nginx ingress controller到我的集群。这会在我的云提供商(假设 AWS 或 GCE)中配置一个负载均衡器。但是,集群内的所有流量都由控制器根据我的入口规则和注释进行路由。

那么在这个控制器前面放置一个云中的负载均衡器的目的是什么?无论如何,控制器似乎正在执行实际的负载平衡?

我想了解如何拥有它,以便云负载均衡器实际上将流量路由到集群内的机器,同时仍然遵循我的所有nginx配置/注释,或者即使这是可能的/有意义的。

标签: nginxkuberneteskubernetes-ingress

解决方案


您可能有一个包含多个主节点的高可用性 (HA) 集群,负载均衡器是一种简单实用的“进入”Kubernetes 集群的方法,因为您的应用程序应该可供您的用户使用(他们在不同的网络上)来自您的集群)。因此,您需要有一个 K8S 集群的入口点。

LB 是一个易于配置的入口点。

以这张图片为例: 在此处输入图像描述

您的 API 服务器是负载平衡的。来自集群外部的调用将通过 LB 并由 API 服务器管理。只有一个 master(被选出来的)负责将集群的状态持久化到 etcd 数据库中。

当您拥有ingress controllerandingress rules时,我认为在 K8S 中配置和管理它们会更容易,而不是将它们写入 LB 配置文件(并在每次修改时重新加载配置)。

我建议您查看https://github.com/kelseyhightower/kubernetes-the-hard-way并在其中进行练习。这是理解流程的好方法。


推荐阅读