问题背景
一种多租户多Nginx集群部署的上云解决方案示意图如图1所示:
图1 一种多租户多Nginx集群部署示意图
该方案主要包含三部分,分别为API Server,配置中心及集群部署节点,各部分实现的功能为:
- API Server:Nginx集群服务的总入口,负责接收各类管控信息,并将请求信息解析后转发至配置中心;
- 配置中心:负责不同租户Nginx实例的安装部署与配置管理;
- 集群部署节点:不同租户在不同节点上部署Nginx实例,实现实例级别的高可用;
如图1所示,要实现高可用的部署方式,就要求在每一个服务器node节点上部署的Nginx实例分属于不同的租户;要实现每个node节点的Nginx实例分属于不同的租户,就要求在node节点实现租户隔离。这里的租户隔离至少需要包含两个属性,一个是网络资源的隔离,一个是Nginx实例端口占用的隔离。
解决思路
为了在同一台node节点实现租户隔离,目前常见的有以下几种解决方案:
- 物理服务器共享实例:即在一台物理服务器上部署一个共享Nginx实例,由配置中心负责管理每个租户创建的虚拟服务器端口,与物理服务器真实的监听端口之间的映射。
- 虚拟机或容器部署:即在一台物理服务器上,部署多个虚拟机或容器&