|
|
51CTO旗下网站
|
|
移动端

5.6.4 云服务多VIP 配置参考

《Microsoft Azure 管理与开发.上册,基础设施服务IaaS》本书是当下关于Microsoft Azure 产品的书籍中特别具有完整性、实用性的一本书,由Microsoft Azure中国区运维团队——世纪互联蓝云的资深工程师们编写。本节为大家介绍云服务多VIP 配置参考。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-07 09:58

5.6.4 云服务多VIP 配置参考

云服务的VIP 实际上是关联到虚拟机前端的Azure Load Balancer,而不是关联到云服务中的虚拟机实例。通过将VIP 转换为虚拟机的内网IP 和将公网端口转换为虚拟机内部端口,我们可以使用单个VIP 访问云服务中的任何VM 实例。

但是,在某些情况下,你可能需要多个 VIP 作为同一云服务的入口点。例如,云服务中有多个虚拟机,每个虚拟机都托管了一个网站,而每一个网站都需要使用默认端口80 来访问,因为每个站点是针对不同的客户或租户托管的。在此情况下,每个网站都需要有不同的面向公众的IP 地址。图5.6-13 阐明了一个典型的在云服务上关联多个VIP 的环境。

在上面的示例中,所有VIP 使用相同的公共端口(80),将访问流量定向到后端托管网站的每一个VM 上。下面讲述如何将VIP 添加到云服务,需要使用Azure Powershell 来操作,不支持在经典管理门户上进行操作。

首先使用如下Powershell 命令:

  1. $dep=Get-AzureDeployment -ServiceName <ServiceName> 
  2. $dep.VirtualIPs 

查看一下云服务的默认VIP,图5.6-14 中命令示例的VIP 是139.217.26.194。

使用Powershell 命令给云服务添加一个VIP。

  1. Add-AzureVirtualIP -ServiceName <SeviceName> -VirtualIPName <VipName> 

其中-VirtualIPName 指明这个添加的VIP 名称,图5.6-15 的示例命令将VIP 命名为VIP1。

从图5.6-15 的输出看,确实可以看到云服务已经添加了VIP1,但是VIP1 并没有一个实际的地址,因为该VIP 并没有关联的具体终结点,只有关联了具体的终结点后,才能具体看到该VIP 是多少。下面将一个具体的终结点关联到该VIP,并且该终结点也是关联到该云服务中的一台虚拟机的,使用的命令如下,命令示例可参考图5.6-16。

  1. Get-AzureVM -ServiceName <ServiceName> -Name <VMname> | Add-AzureEndpoint  
  2. -Name <EndpointName> -Protocol tcp -LocalPort <LocalPortNumber> -PublicPort  
  3. <PublicPortNumber> -VirtualIPName <VipName> | Update-AzureVM 

说明:-Name 指的是为这个终结点自定义的名称;-Protocol 指定终结点采用的协议,一般为TCP 或者UDP;-LocalPort 指的是虚拟机所开的内网端口;-Publicport 指的是公网端口;-VirtualIpname 指的是将这个终结点关联到哪个VIP,这里当然填写VIP1 了。

运行上面的命令并再次查看云服务的VIP,可以看到VIP1 的地址,参考图5.6-17。

在经典管理门户虚拟机的终结点部分可以看到添加的终结点,参考图5.6-18。

如需要为云服务再关联新的VIP,按照以上步骤重复操作即可。需要注意的是,云服务的默认DNS 名称xxx.chinacloudapp.cn 只会解析到云服务最初的VIP,而不会解析到我们手动关联的VIP。参考下面的解析测试,如图5.6-19 所示。另外从图5.6-17 中可以看到,只有默认VIP 的IsDnsProgrammed 属性值为True。

与在云服务默认的VIP 上启用负载均衡设置一样,也可以在手动添加的VIP 上启动负载均衡。例如,针对上面添加的VIP1,希望将发往VIP1 的公网端口8080、内网端口8080的流量在两个后端虚拟机之间进行负载均衡,可以使用下面的命令并参考图5.6-20。

  1. Get-AzureVM -ServiceName <ServiceName> -Name <VmName>| Add-AzureEndpoint  
  2. -Name myendpoint -LoadBalancedEndpointSetName LBTest -Protocol tcp -LocalPort  
  3. 8080 -PublicPort 8080 -VirtualIPName VIP1 -DefaultProbe | Update-AzureVM  
  4. Get-AzureVM –ServiceName <ServiceName>–Name <VmName>| Add-AzureEndpoint  
  5. -Name myendpoint -LoadBalancedEndpointSetName LBTest -Protocol tcp -LocalPort  
  6. 8080 -PublicPort 8080 -VirtualIPName VIP1 -DefaultProbe | Update-AzureVM 

添加完成之后,可以在经典管理门户虚拟机的终结点界面看到设置的负载均衡集,参考图5.6-21。

手动添加的VIP 如果需要保留,防止虚拟机关机、开机后发生变化,可以使用下面的命令进行固定,示例可参考图5.6-22。

  1. New-AzureReservedIP -ServiceName <ServiceName> -ReservedIPName VIPResv  
  2. -Location "China North" –VirtualIPName <VipName> 

说明:-ReservedIPName 指明将这个VIP 设置为某个保留名称,可自定义;

-Location 为China East 或者China North,依据虚拟机的位置而定;

-VirtualIPName 就是填写要保留的VIP 名称,这里当然是VIP1 了。

最后需要注意的是下面两点:

(1) 未关联到额外添加的VIP 的终结点是使用默认的VIP 来访问。使用默认的终结点无法访问关联到特定VIP 的终结点。比如无法使用默认的VIP 来访问关联到VIP1 的80端口,如图5.6-23 所示。

(2) 配置了额外的VIP 后,无法通过界面去调整虚拟机的配置了,例如在界面中调整虚拟机大小或者可用性集,或者添加、删除终结点,等等,会提示错误,参考图5.6-24。只能使用Powershell 去操作这些设置。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java程序设计专家门诊

精选目前国内外最流行的程序设计语言——Java作为本书的选题,并以丰富的内容来解决读者学习该语言时可能遇到的各种问题。以专业的论坛为基...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊