我们知道,Windows Azure中的虚机之间可以通过内部私有网络进行通讯,只要将它们放在同一个Cloud Service或者Virtual Network里。然而,我们仍然需要对虚机配置对外的交互端口(Endpoint, 端点),从而使这台虚机或者这个虚拟私有网络可以对外通信。
在Windows Azure中,端点(Endpoint)有多种用途。它可以用于网络中的负载均衡并达到高可用性,也可用于对某台虚机建立直接的连接(例如:远程桌面RDP或者SSH)。用户可以在Windows Azure的管理平台为端点(Endpoint)配置具体的端口并指定通讯协议。
我们可以为端点(Endpoint)指定TCP或者UDP协议,TCP协议包含对HTTP/HTTPS的支持。每一个虚机上的端点,都会被分配一个公共端口(public port)和私有端口(private port)。私有端口用于虚机上的访问,公有端口用于Windows Azure对该虚机的访问。
当用于在Windows Azure中配置了负载均衡,Windows Azure会使用轮询调度算法(Round-Robin),通过用户在一个Cloud Service里指定的公共端口,对互联网的流量进行均衡。下图描述了在一个Cloud Service的三台虚机之间建立负载均衡。在这个例子中,公共端口和私有端口都指定为80。
下面是实现上图中这种配置的具体步骤:
1. 创建第一台虚机和端点(endpoint)
用户可以从镜像列表中创建虚机,也可以使用快速创建方法。关于如何创建虚机可参考:在Windows Azure中创建Linux虚机,在Windows Azure中创建Windows虚机。
2. 在同一个云服务(Cloud Service)中创建其它虚机
这时,我们需要在同一个云服务(Cloud Service)中创建另外一台虚机。具体的方法可参考:在云服务中创建虚机。
3. 为虚机配置负载均衡
1) 登陆Windows Azure管理界面
2) 选择要配置负载均衡的虚机,点击Endpoint。如果您之前没有为该虚机创建端点,请点击页面下方的Add;如果已经创建过端点,请点击Edit
- 点击Add,创建新端点:
- 创建负载均衡组:
4. 将虚机添加到负载均衡组(load-balanced set)
选择要添加的虚机,点击Endpoint:
注:
1. Windows Azure有Availability Set的概念,如果我们将两台虚机放在同一个Availability Set,这两台虚机将会属于不同的Fault Domain, 即这两台虚机不会同时宕机。但,Availability Set并不能自动实现负载均衡。用户必须通过上面的步骤进行配置,才能达到这一点。
2. 对于配置了负载均衡的机器,强烈建议用户将它们放在同一个Availability Set里,这样当一台机器由于系统升级而宕机时,Windows Azure可以保证另外一台机器正常运转。关于如何配置Availability Set, 请参考文章: http://www.windowsazure.com/en-us/manage/windows/common-tasks/manage-vm-availability/