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 资源规则。它的核心功能是:

    1. HTTP/HTTPS 路由:根据域名、路径等第7层信息,将进入集群的 HTTP(S) 流量路由到不同的后端 Service/Deployment。

    2. API 网关功能:提供 SSL/TLS 终止、重写、认证等高级功能。

  • 层级:主要工作在 HTTP/HTTPS 层。

它们是如何协同工作的?

在一个典型的、将 Kubernetes 服务暴露到公网的 AWS 架构中,NLB 和 Nginx Ingress 会这样配合:

流量路径:
互联网用户 -> AWS NLB -> Kubernetes NodePort/LoadBalancer Service -> Nginx Ingress Controller Pod -> 你的业务应用 Pod

角色分工:

  1. NLB(AWS 云服务):

    • 扮演 “门卫” 或 “流量入口” 的角色。

    • 它有一个静态 IP 或 DNS 名称供外部访问。

    • 它不关心 HTTP 路由规则,只负责将接收到的 TCP 流量(通常是 80/443 端口)可靠地、高性能地转发到 Kubernetes 集群节点上运行的 Nginx Ingress Controller Pod。

  2. Nginx Ingress(Kubernetes 集群内组件):

    • 扮演 “内部交通警察” 的角色。

    • 它接收从 NLB 转发过来的流量。

    • 然后根据你定义的 Ingress 规则(比如 a.example.com 去 A 服务, b.example.com/api 去 B 服务),将 HTTP/HTTPS 请求路由到对应的、具体的业务 Pod。

一个生动的比喻

  • NLB 就像是 公司大楼前台。

    • 他的工作是把所有外来访客(网络流量)高效地引导到公司内部,但他不关心访客具体要去市场部还是技术部。

  • Nginx Ingress 就像是 公司内部的接待经理。

    • 他站在前台后面,一旦访客进入大楼,他就会上前询问:“您好,请问您找哪个部门?(基于主机头或路径的路由)”,然后亲自把访客带到正确的部门(业务 Pod)。

总结

 
特性AWS NLBNginx Ingress
提供商 AWS F5/NGINX (开源社区)
部署位置 AWS 云网络 Kubernetes 集群内部
主要层级 第4层 第7层
核心职责 高可用、高性能的流量分发 基于内容的 HTTP 路由和 API 网关功能
关系 入口点,为 Ingress 提供服务 内部路由器,依赖于 NLB(或其他LB)将流量引入集群

所以,NLB 不是 Nginx Ingress。更准确的说法是:在 AWS 上的 Kubernetes 环境中,我们经常使用 NLB 作为外部流量入口,来将流量负载均衡到 Nginx Ingress Controller,再由 Ingress Controller 进行更精细的内部路由。

 

 

 

posted @ 2025-11-11 11:39  苦逼yw  阅读(4)  评论(0)    收藏  举报