Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
jonathan001
V2EX  ›  云计算

公有云负载均衡是如何实现多租户的

  •  
  •   jonathan001 · 10h 35m ago · 882 views

    我最近在思考一个问题,公有云负载均衡是如何实现多租户,目前我想到的方案有二,具体如下:

    方案一、 负载均衡器直接安装在 VPC 内部以虚拟机的形式存在,这样天然实现了租户隔离,即使 CIDR 重叠也没有关系,但是随着租户越来越多虚拟机数量暴增,资源严重浪费。

    方案二、 共享负载均衡池,部分人共用一个 nginx 进程,每个租户分配一个虚拟的 ip 地址,负载均衡器 proxy_pass 指向这个虚拟的 IP ,然后通过 NAT 进行转换引流到 VPC 中,但是缺点是 NAT 需要跟踪这些 SESSION ,表象过大。

    不知道有没有做过的童鞋,给提提意见。

    8 replies    2026-05-16 20:27:16 +08:00
    PolarBears
        1
    PolarBears  
       10h 23m ago
    除了虚拟机其实还有 LXC 这种东西
    jonathan001
        2
    jonathan001  
    OP
       10h 15m ago
    @PolarBears 只是隔离环境,我在想是不是可以用 LXC 然后流量出的时候直接打上 vlan ,然后上层交换机引入 vxlan
    pingdog
        3
    pingdog  
       10h 6m ago via iPhone
    vxlan 解决不了多租户,vrf, sr 都发展十多年了

    Linux 还可以用 netns 来分割多个 instance
    jonathan001
        4
    jonathan001  
    OP
       10h 2m ago
    @pingdog 我刚才看了下,可以把不同租户的 nginx 进程放到 netns 中,网络一端在 ns 中,一端在物理机,物理机器这段要通过 vrf 隔离,按理说可以实现多租户的隔离。
    teaguexiao
        5
    teaguexiao  
       8h 58m ago
    AWS ALB/NLB 实際上是方案二的变体,共享池配路,内部用 VPC Lattice 和 Hyperplane 做网络虚拟化而不是传统 NAT ,避免了连接跟踪表爆峸的问题。跟你方案二思路相近,但关键在网络中面痄呼而不是 instance 层就能打通租户隔离。
    jonathan001
        6
    jonathan001  
    OP
       8h 42m ago
    @teaguexiao 我看公开的资料少,就自己瞎琢磨
    my3157
        7
    my3157  
       6h 42m ago via Android
    其实大多数云都是有个特殊的网络优化过的物理机,然后上面跑 lxc/vm ,运行 nginx+lua or haproxy
    jonathan001
        8
    jonathan001  
    OP
       6h 33m ago
    @my3157 这种方案我已经梳理通了,直接在 linux netns 中跑 nginx 进程,物理一层的网卡直接放到 vrf 中,netns 中的 nginx 进程应该可以用 cgroup 来做隔离,对于高可用可以在多个可用区部署多个进程,然后归属同一个 vxlan 就行。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1011 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:00 · PVG 03:00 · LAX 12:00 · JFK 15:00
    ♥ Do have faith in what you're doing.