awsd的lb
1. AWS 的 LB 是什么?
在 AWS 中,LB 是负载均衡器 的缩写。它的核心作用与所有负载均衡器一样:将传入的网络流量自动分发到多个后端目标(如 EC2 实例、容器、IP 地址等),以提高应用程序的可用性和可扩展性。
AWS 主要提供三种类型的负载均衡器,适用于不同场景:
| 类型 | 中文全称 | 工作层 | 主要特点和用途 |
|---|---|---|---|
| ALB | 应用负载均衡器 | 第7层 | - 智能路由:根据内容(如 URL 路径 /api 或 主机头 a.example.com)将请求路由到不同的后端服务。- 最适合:微服务、容器化应用(如 Kubernetes 的 Ingress)、Web 应用程序。 |
| NLB | 网络负载均衡器 | 第4层 | - 极致性能:处理数百万级别的请求/秒,且延迟极低。 - 保持源 IP:能够将客户端的源 IP 地址直接透传给后端实例。 - 支持静态 IP:可以为 NLB 分配静态 IP。 - 最适合:需要高性能和低延迟的 TCP/UDP 流量(如游戏、金融应用)。 |
| GLB | 网关负载均衡器 | 第3层 | - 安全流量导向:主要用于将流量引导至第三方虚拟安全设备集群(如防火墙、入侵检测系统),进行安全检查和过滤。 - 最适合:安全生态系统的部署和扩展。 |
简单总结: 当人们说 “AWS 的 LB” 时,他们通常指的是 ALB、NLB 或 GLB 中的一种,具体是哪一种取决于他们的应用场景。AWS的ELB默认就是ALB。
2. NLB 是 Nginx Ingress 吗?
答案是:不,它们不是同一个东西,但它们在 Kubernetes 架构中可以协同工作。
这是一个非常重要的区别。我们来分解一下:
NLB
-
身份:它是 AWS 提供的一种云服务,一种托管式的网络负载均衡器。
-
作用:它位于 AWS 云网络边界,负责接收来自互联网或 VPC 内部的流量,并将其转发到某个目标组。
-
层级:主要工作在 TCP/UDP 层。
Nginx Ingress
-
身份:它是 Kubernetes 集群内部的一个组件,通常以 Pod 的形式运行在集群里。
-
作用:它是一个 Ingress Controller,实现了 Kubernetes 的 Ingress 资源规则。它的核心功能是:
-
HTTP/HTTPS 路由:根据域名、路径等第7层信息,将进入集群的 HTTP(S) 流量路由到不同的后端 Service/Deployment。
-
API 网关功能:提供 SSL/TLS 终止、重写、认证等高级功能。
-
-
层级:主要工作在 HTTP/HTTPS 层。
它们是如何协同工作的?
在一个典型的、将 Kubernetes 服务暴露到公网的 AWS 架构中,NLB 和 Nginx Ingress 会这样配合:
流量路径:互联网用户 -> AWS NLB -> Kubernetes NodePort/LoadBalancer Service -> Nginx Ingress Controller Pod -> 你的业务应用 Pod
角色分工:
-
NLB(AWS 云服务):
-
扮演 “门卫” 或 “流量入口” 的角色。
-
它有一个静态 IP 或 DNS 名称供外部访问。
-
它不关心 HTTP 路由规则,只负责将接收到的 TCP 流量(通常是 80/443 端口)可靠地、高性能地转发到 Kubernetes 集群节点上运行的 Nginx Ingress Controller Pod。
-
-
Nginx Ingress(Kubernetes 集群内组件):
-
扮演 “内部交通警察” 的角色。
-
它接收从 NLB 转发过来的流量。
-
然后根据你定义的 Ingress 规则(比如
a.example.com去 A 服务,b.example.com/api去 B 服务),将 HTTP/HTTPS 请求路由到对应的、具体的业务 Pod。
-
一个生动的比喻
-
NLB 就像是 公司大楼前台。
-
他的工作是把所有外来访客(网络流量)高效地引导到公司内部,但他不关心访客具体要去市场部还是技术部。
-
-
Nginx Ingress 就像是 公司内部的接待经理。
-
他站在前台后面,一旦访客进入大楼,他就会上前询问:“您好,请问您找哪个部门?(基于主机头或路径的路由)”,然后亲自把访客带到正确的部门(业务 Pod)。
-
总结
| 特性 | AWS NLB | Nginx Ingress |
|---|---|---|
| 提供商 | AWS | F5/NGINX (开源社区) |
| 部署位置 | AWS 云网络 | Kubernetes 集群内部 |
| 主要层级 | 第4层 | 第7层 |
| 核心职责 | 高可用、高性能的流量分发 | 基于内容的 HTTP 路由和 API 网关功能 |
| 关系 | 入口点,为 Ingress 提供服务 | 内部路由器,依赖于 NLB(或其他LB)将流量引入集群 |
所以,NLB 不是 Nginx Ingress。更准确的说法是:在 AWS 上的 Kubernetes 环境中,我们经常使用 NLB 作为外部流量入口,来将流量负载均衡到 Nginx Ingress Controller,再由 Ingress Controller 进行更精细的内部路由。

浙公网安备 33010602011771号