龙空技术网

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

MeshCloud脉时云 273

前言:

目前咱们对“虚拟机端口映射端口不通”都比较讲究,大家都需要分析一些“虚拟机端口映射端口不通”的相关知识。那么小编也在网上汇集了一些对于“虚拟机端口映射端口不通””的相关资讯,希望我们能喜欢,看官们一起来了解一下吧!

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

一、引言

在多云和全球化线上业务背景下,为统一业务入口、同时减少对现有业务环境的侵入性,我们建议采用单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 上会提供不同的对外服务。

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

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

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

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

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

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

六、实施步骤创建TCP NLB-选择负载均衡器

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

配置后端服务-Instance Group

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

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

配置后端服务-会话保持

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

客户端 IP、目的地 IP (CLIENT_IP),来源 IP 地址和目的地 IP 地址的 2 元组哈希Connection-draining-timeout,连接排空过程旨在确保在从实例组中移除虚拟机或从区域 NEG 中移除端点时,为进行中的现有请求留出一定的时间,让这些请求可以完成。超时持续时间必须介于 0 到 3600 秒之间(含边界值)配置前端服务-外部IP和Port

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

检查NLB状态及是否正确配置

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

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

七、验证

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

(1)验证22端口访问

(2)验证80端口访问

(3)验证8080端口访问

八、参考链接

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

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

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

【4】启用连接排空

【5】防火墙规则

【6】Multiple port numbers for a named port

标签: #虚拟机端口映射端口不通