一种多租户多Nginx集群部署的上云解决方案(一)

问题背景

    一种多租户多Nginx集群部署的上云解决方案示意图如图1所示:

图1 一种多租户多Nginx集群部署示意图

    该方案主要包含三部分,分别为API Server,配置中心及集群部署节点,各部分实现的功能为:

  • API Server:Nginx集群服务的总入口,负责接收各类管控信息,并将请求信息解析后转发至配置中心;
  • 配置中心:负责不同租户Nginx实例的安装部署与配置管理;
  • 集群部署节点:不同租户在不同节点上部署Nginx实例,实现实例级别的高可用;

    如图1所示,要实现高可用的部署方式,就要求在每一个服务器node节点上部署的Nginx实例分属于不同的租户;要实现每个node节点的Nginx实例分属于不同的租户,就要求在node节点实现租户隔离。这里的租户隔离至少需要包含两个属性,一个是网络资源的隔离,一个是Nginx实例端口占用的隔离。

解决思路

    为了在同一台node节点实现租户隔离,目前常见的有以下几种解决方案:

  • 物理服务器共享实例:即在一台物理服务器上部署一个共享Nginx实例,由配置中心负责管理每个租户创建的虚拟服务器端口,与物理服务器真实的监听端口之间的映射。
  • 虚拟机或容器部署:即在一台物理服务器上,部署多个虚拟机或容器,每个虚拟机或容器分属于不同的租户网络,部署各租户独享的Nginx实例;
  • 命名空间部署:即在一台物理服务器上,使用租户网络创建不同的命名空间,在命名空间中部署租户独享的Nginx实例;

    这里以命名空间为例,实现一种基于Macvlan的租户隔离的Nginx集群部署实践。

网络拓扑

图2 基于Macvlan实现多租场景下Nginx集群部署网络拓扑示意图

    如图2所示,本示例基于BC-Linux7.6操作系统,创建了两台虚拟机node1和node2,ens33为虚拟机上的网卡。其中子网卡ens33.0为虚拟机管理网卡,子网卡ens33.01是命名空间中管理网卡,子网卡ens33.1和ens33.2为不同子网的租户业务网卡,各网卡IP地址规划如下。下一期,我们将从实践角度对集群进行搭建与测试验证,敬请期待~

管理网租户1业务网租户2业务网
Mac0Mac1Mac3Mac5Mac6Mac8Mac2Mac7Mac4Mac9
100.76.8.10100.76.8.11100.76.8.13100.76.8.15100.76.8.16100.76.8.18192.168.1.12192.168.1.17172.16.2.24172.16.2.29

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值