<返回更多

通过NLB 实现多服务端口映射

2022-05-09    MeshCloud脉时云
加入收藏

作者:MeshCloud脉时云公有云架构师 邓军

一、引言

在多云和全球化线上业务背景下,为统一业务入口、同时减少对现有业务环境的侵入性,我们建议采用单NLB多端口的方式实现。配置简单,低成本、高可用,非常适合对内业务系统的架构部署。

二、技术架构

通过NLB 实现多服务端口映射

 

三、技术简介

本方案主要解决同一个VM 对外提供多种对外应用服务,前端采.NETwork Load Balancing(Region后端服务)+ UMIG+GCE(多可用区) 实现,特定业务系统采用静态IP对外提供服务。其中主要涉及几个方面的概念:

(1)Network Load Balance与TCP Proxy Load Balance的区别;

(2)UMIG非托管实例组的prot mApping的使用;

(3) Backend Service会话亲和性的设置;

(4)后端服务
Connection-draining-timeout,连接排空时间的设置。

四、目标

成功访问NLB同一个静态IP对应不同的后端服务,主要是解决无状态服务的跨zone可用性问题。

五、准备工作

5.1 在同VPC 下的同Region不同Zone 建立相同后端服务的GCE实例,GCE 上会提供不同的对外服务。

通过NLB 实现多服务端口映射

 

5.2 创建Instance Group(类型为UMIG,非托管实例组),将GCE 与UMIG进行绑定,并完成基于不同端口的服务Port Mapping(端口映射)

通过NLB 实现多服务端口映射

 

(1)UMIG “admas-us1a”配置示例,“admas-us1c”配置一样。

通过NLB 实现多服务端口映射

 


通过NLB 实现多服务端口映射

 

5.3 创建用于服务的健康检查规则,并注意检查网络防火墙规则对于HC(Heath Check)端口的放行。

通过NLB 实现多服务端口映射

 

说明:一个Load Banlance后端服务只能创建一个健康检查

5.4 创建基于不同服务的对外服务静态IP 地址

通过NLB 实现多服务端口映射

 

说明:提前保留的Static IP Address 35.226.123.74

六、实施步骤

  1. 创建TCP NLB-选择负载均衡器
通过NLB 实现多服务端口映射

 


通过NLB 实现多服务端口映射

 

说明:NLB仅支持Region级别,若选择Multiple Regions则会创建TCP Proxy Load Balancer。而TCP Proxy Load Balancing 有前端固定端口限制。

  1. 配置后端服务-Instance Group
通过NLB 实现多服务端口映射

 

说明:(1)定义NLB名称;(2)选择NLB作用的Region;(3)选择预先创建好的UMIG。

此处分别创建2个同步可用区的UMIG主要是实现同一服务分布在不同Zone,实现业务高可用性。

  1. 配置后端服务-会话保持
通过NLB 实现多服务端口映射

 

说明:(1)选择预先创建好的Health Check服务;(2)设置会话亲和性为Client IP;(3)设置连接排空时间为300s。

  1. 配置前端服务-外部IP和Port
通过NLB 实现多服务端口映射

 

说明:(1)网络层级建议选择“Premium”;(2)选择IP地址为预留的静态IP或新建静态IP;(3)选择端口为“Multiple”;(4)设置多端口,80,8080,22。

  1. 检查NLB状态及是否正确配置
通过NLB 实现多服务端口映射

 

(1)检查NLB服务是否正常

通过NLB 实现多服务端口映射

 

(2)检查后端服务健康检查是否正常。

七、验证

验证NLB 访问,通过NLB 的外部IP 访问后端服务

(1)验证22端口访问

通过NLB 实现多服务端口映射

 

(2)验证80端口访问

通过NLB 实现多服务端口映射

 

(3)验证8080端口访问

通过NLB 实现多服务端口映射

 


通过NLB 实现多服务端口映射

 

八、参考链接

【1】Cloud Load Balancing 后端服务概览

https://cloud.google.com/load-balancing/docs/backend-service

【2】基于后端服务的外部 TCP/UDP 网络负载平衡概览

https://cloud.google.com/load-balancing/docs/network/networklb-backend-service

【3】健康检查-SSL 和 TCP 成功标准

https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp

【4】启用连接排空

https://cloud.google.com/load-balancing/docs/enabling-connection-draining

【5】防火墙规则

https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#firewall_rules

【6】Multiple port numbers for a named port

https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-unmanaged-instances#multiple_port_numbers_for_a_named_port

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>