Part15 - (图文)NSX系列之 Load Balancing

 

猫猫的第一本书“VMwareVirtualSAN实战”已经在各大书店上架,欢迎预定。京东搜索关键字”VSAN“,作者为吴秋林即可;...



LoadBalancing 作为 NSX 的其中一个功能的存在,可以帮助实现NSX里Edge后面多台服务器有分布式负载实现负载均衡诉求以及高可用诉求。其中最典型的就以Web Server 服务为例,基本上大型 Web Server 服务对于Load Balancing 的要求基本是必然的。当然了,这个诉求可以用纯硬件解决方案来实现,例如:F5、A10、Netscaler 等,都有解决方案,但是既然讨论的是SDN,那么,自然这里也就以 Software 解决方案为重点探索目标了。NSX 作为目前最适合商业用途的 SDN 解决方案,自然也就有这方面的要求了。NSXEdge 支持下的 Load Balancing 功能支持通过NSX Edge 作为负载均衡设备,允许外部用户访问 VLAN 或  VXLAN 的负载均衡服务目标服务器。如图01所示:

                           

图01
NSX 的 Load Balancing 服务在云计算环境里是很合适的,因为它提供了下面的功能特性:

o  支持通过 API 实现可编程功能;

o  同时还提供了管理与监控于一体的其它 NSX Edge Services;

借助 NSX EdgeLoad Balancing 服务,可以实现对很多应用部署的 Load Balancing 支持,因为 NSX Edge 支持很多功能组件,例如:

o  包含且不限于 LDAP、FTP、HTTP、HTTPS 在内的任意 TCP 类Applications;

o  从 NSX 6.1 开始,支持 UDP Applications;

o  支持 Round-Robin、Least Connections、SourceIP Hash、URL 等负载均衡算法;

o  支持对 TCP、HTTP、HTTPS 等在内的内容健康检查;

o  支持 Source IP、MSRDP、Cookie、SSL Session-id 的 Persistence;

o  支持基于最大连接数和每秒连接数的连接限制;

o  支持的 L7 操作包括但不限于 URL Block、URLRewrite、Content Rewrite 等;

o  优化了对于 SSL Offload 的支持;

针对 LoadBalancing 的部署,NSX Edge 支持两种模式,分别是:

o  One-Arm – 也叫Proxy Mode,这种模式的结构示意图如图02所示。NSXEdge 只接连接到它提供 Load Balancing 服务的Logical Networks:
 

图02
在 One-Armed 的Load Balancer 里,它提供的功能如下:

  1. A.     External Client 发送 traffic 到Load Balancer 提供的 Virtual IP (VIP)地址;
  2. B.     Load Balancer 支持两个地址转换,将 Original Packets 包含的地址,执行DNAT 或 SNAT,以便实现进出 traffic 的 IP 地址转换;
  3. C.     Logical Network 里的 Server 则将 traffic 发送到 Load Balancer;
  4. D.    Load Balancer 执行 SNAT 和 DNAT 完成VIP 地址与 Original Packets 所包含地址的转换;
这种模式,最大的优势就在于部署简单且灵活,可以直接将 Load Balancing Services 配置到 Logical Segments 所关联的 NSX Edge,不需要额外配置其它的东西;而另一种部署模式则需要部署更多的NSX Edge Instances,并且还需要指定针对 SNAT 的部署设定里不允许数据中心里的服务器看到Original Client IP 地址;

备注: LoadBalancer 可以在 SNAT 之前插入 OriginalClient IP 地址到 HTTP Header;

o  Inline Mode – 也叫Transparent Mode,这个部署模式则要求将 NSX Edge 以Inline 的方式部署到 Servers 所在区域而不是以Edge 的形式部署,这种模式的结构示意图如图03所示:


图03
图03所示的通讯流程如下:

  1. A.     External Client 发送 Traffic 到 Load Balancer 的 Virtual IP;
  2. B.     Load Balancer 仅执行 DNAT 来将 VIP 替换为其中一台服务器的IP 地址;
  3. C.     服务器返回 Original Client IP 到 Load Balancer;
  4. D.    Load Balancer 执行 SNAT 将 Traffic 发送到External Client,并且这个过程是以 VIP 为Source IP;
这种模式,相对而言也不算复杂,而且允许服务器具备完全可见的 Original Client IP 地址。不过,在设计的角度而言,就不算太灵活了,因为它会强制将Load Balancer 作为数据中心里服务器的缺省网关,这样一来,就破坏了关于分布式架构的优势。还有一个很重要的地方需要了解的是,这种模式下的Load Balancer 会以逻辑服务的形式存在于 NSX Edge 里面,换个说法就是:路由服务、交换服务和Load Balancing 服务都混在一起了。因此,如果要选择这种模式,则建议在部署 NSX EdgeInstance 时选择的部署规模建议最好为 X-Large 以上,以便这个Instance 能够有足够大的配置能胜任这些工作;

了解完 LoadBalancer 的部署模式以及各自的优劣之后,就开始介绍如何动手部署 Load Balancer 了。由于 Inline Mode 是在现有的 NSX Edge 上激活 Load Balancer 功能,所以,这里将会介绍One-Armed Load Balancer 的部署方式。步骤如下:

1、首先,需要我们规划一个负载均衡诉求环境,以 Web Server 为例,至少需要2台 Web Server,将 Load Balancer 指向这两台 Web Server。如图04所示:


图04
2、vSphere Web Client 登录到 vCenter,点击 Networking & Security › NSXEdges › 点击如图05所示的绿色加号:


图05
3、在弹出的如图06所示的对话框里,选择 Install Type 为 Edge Services Gateway:


图06
在图06中的 Name选项输入名字,然后点击 Next;

4、图07的窗口里可以设定的选项包含了用户名、密码、是否激活 SSH 服务等,勾选 Enable SSH access,后点击 Next 去到下一步:


图07
5、接着来到 Configure deployment 窗口里选择Appliance Size、选择存放的数据中心等,如图08所示:


图08
选定之后,勾选图08所示的 Deploy NSX Edge,然后点击 Next;

6、接下来这一步需要配置的是 Edge Interface 和 IP 地址,由于本例中选择的是 One-Armed 部署模式,所以,只需要配置一个IP 就行,如图09所示。这里的 IP 地址应该为能够访问到 Web Server 所在 LogicalNetworks 的 Interface 对应 IP:


图09
7、Default gateway settings 设定选项里,设定好Gateway  IP,也应该为Web-Tier 对应的 Gateway IP,如图10所示:


图10
8、最后就是配置 Firewall and HA 选项,如图11所示,勾选 Configure Firewall default policy,在Default Traffic Policy 选项里点击 Accept:


图11
当确认一切无误后,点击Next,然后直接点击 Finish 即可完成对于这个 NSXEdge Load Balancer 的部署,部署完成后,可以在如图12所示的窗口里看到多了一个Edge Instance:


图12
9、完成了 Edge Load Balancer Instance 的部署之后,就需要在其上配置Load Balancing 服务了。双击图12中所示的 LoadBalancer Edge Instance,来到如图13所示的窗口:


图13
在图13所示的窗口里,点击 Load Balancer 页标签 › GlobalConfiguration › Edit;

10、之后就会来到如图14所示的 Edit Load balancerglobal configuration 窗口,勾选如图14中的Enable Load Balancer 选项,点击 Ok:


图14
11、然后,点击如图15所示的 Application Profiles › 点击绿色加号:


图15
12、来到如图16所示的 New Profile 窗口,在这个窗口里输入打算命名的 Profile Name,同时选择Type 为 HTTPS,勾选Enable SSLPassthrough:


图16
13、再来就是点击如图17所示的 Pools › 点击绿色的加号:


图17
14、在弹出的 New Pool 窗口里,选择 ROUND-ROBIN,Monitors 选项则选择 default_https_monitor, 然后点击如图18b所示的绿色加号,将 Web Server 都添加进来,然后点击 OK:


图18a
注意,在弹出的 EditMember 里,需要去选择添加将会用作 Load Balancer 访问对象的Web Server,如图18b所示:


图18b
注意,图18b里出现的添加向导里的 Monitor Port 应该为 443噢;

15、最后异步需要做的事情就是创建一个 VIP,点击如图19a所示的 Virtual Servers › 点击绿色加号:


图19a
接着在弹出的如图19b所示的窗口里,勾选 General 页标签里的 EnableVirtual Server,然后在相关的设定选项里设定如图19b所示的这样设定,需要给它设定一个没用过的IP 地址:


图19b
16、完成这样的设定之后,就可以打开浏览器,在浏览器里输入 VIP 的地址,它会给我们返回来自于两台Web Servers 服务器中某一台服务器的结果,由于选择的是ROUND-ROBIN,所以,当我们尝试刷新时,返回的服务器结果可能会轮换为 Web01 与Web02;

至此,即完成了关于借助 NSXEdge 实现 One-Armed Load Balancing 配置的需求;

未完待续……

Part01 - (图文)NSX系列之NSX概念与安装前准备

Part02 - (图文)NSX系列之NSX试验环境准备与部署NSX Manager

Part03 - (图文)NSX系列之注册NSX Manager到vCenter Server

Part04 - (图文)NSX系列之部署NSX Controller

Part05 - (图文)NSX系列之检查NSX Controller状态

Part06 - (图文)NSX系列之为NSX环境配备vSphere主机与Cluster

Part07 - (图文)NSX系列之检查ESXi主机上VIBs的完整性

Part08 - (图文)NSX系列之为ESXi主机配置VxLAN

Part09 - (图文)NSX系列之为VXLAN创建Segment ID和Transport Zones

Part10 - (图文)NSX系列之创建Logical Switch

Part11 - (图文)NSX系列之创建Distributed Logical Router

Part12 - (图文)NSX系列之部署配置NSX Edge Gatway

Part13 - (图文)NSX系列之为ESG和DLR配置OSPF动态路由

Part14 - (图文)NSX系列之Network Address Translation


    关注 虚拟人


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册