Azure刚刚发布在同一个Cloud Service下支持多个公网IP地址的功能。

这个功能主要是用于:

当相同的端口需要公用相同的LoadBalance时。

比如:

一种使用场景是多组Web服务器被一组安全设备保护,每组服务器有自己独立的IP地址,如下图:

这时需要:

  1. 为CloudService添加多个VIP地址:

    PS C:\Users\hengz> Add-AzureVirtualIP -ServiceName hwmvip -VirtualIPName vip1

    OperationDescription OperationId OperationStatus
    -------------------- ----------- ---------------
    Add-AzureVirtualIP 14a912b8-5f03-4ecd-aecb-f97e679553e1 Succeeded

    PS C:\Users\hengz> Add-AzureVirtualIP -ServiceName hwmvip -VirtualIPName vip2

    OperationDescription OperationId OperationStatus
    -------------------- ----------- ---------------
    Add-AzureVirtualIP f9014c8f-d72d-4bad-ae3d-2ffa28e24ce1 Succeeded

  2. 创建三组不同的SLB和LBS,分别用原有的VIP和新增加的VIP

PS C:\Users\hengz> Get-AzureVM -ServiceName hwmvip -Name hwmvip01 | Add-AzureEndpoint -Name myEndpoint01 -LoadBalancedEndpointSetName myLBSet01 -Protocol tcp -LocalPort 80 -PublicPort 80 -VirtualIPName vip1 -DefaultProbe | Update-AzureVM

OperationDescription OperationId OperationStatus
-------------------- ----------- ---------------
Update-AzureVM 20ec6266-ad18-4dd3-b6c3-35643e32ed16 Succeeded

PS C:\Users\hengz> Get-AzureVM -ServiceName hwmvip -Name hwmvip02 | add-AzureEndpoint -Name myEndpoint00 -LBSetName myLBSet01 -Protocol tcp -LocalPort 80 -PublicPort 80 -DefaultProbe -VirtualIPName vip1 | Update-AzureVM

OperationDescription OperationId OperationStatus
-------------------- ----------- ---------------
Update-AzureVM fd406797-3d41-4b74-b030-40c5674e6364 Succeeded

PS C:\Users\hengz> Get-AzureVM -ServiceName hwmvip -Name hwmvip01 | add-AzureEndpoint -Name myEndpoint02 -LBSetName myLBSet02 -Protocol tcp -PublicPort 80 -LocalPort 81 -DefaultProbe | Update-AzureVM

OperationDescription OperationId OperationStatus
-------------------- ----------- ---------------
Update-AzureVM 57df6a8b-473d-48e3-8b93-44d6e80f5b6e Succeeded

PS C:\Users\hengz> Get-AzureVM -ServiceName hwmvip -Name hwmvip02 | add-AzureEndpoint -Name myEndpoint02 -LBSetName myLBSet02 -Protocol tcp -PublicPort 80 -LocalPort 81 -DefaultProbe | Update-AzureVM

OperationDescription OperationId OperationStatus
-------------------- ----------- ---------------
Update-AzureVM 8f304e3b-0745-430a-ad2d-b112d0883e16 Succeeded

PS C:\Users\hengz> Get-AzureVM -ServiceName hwmvip -Name hwmvip01 | Add-AzureEndpoint -Name myEndpoint03 -LoadBalancedEndpointSetName myLBSet03 -Protocol tcp -LocalPort 82 -PublicPort 80 -VirtualIPName vip2 -DefaultProbe | Update-AzureVM

OperationDescription OperationId OperationStatus
-------------------- ----------- ---------------
Update-AzureVM 57f7bcc3-b09e-482d-85f7-704c552c69f9 Succeeded

PS C:\Users\hengz> Get-AzureVM -ServiceName hwmvip -Name hwmvip02 | Add-AzureEndpoint -Name myEndpoint013 -LoadBalancedEndpointSetName myLBSet03 -Protocol tcp -LocalPort 82 -PublicPort 80 -VirtualIPName vip2 -DefaultProbe | Update-AzureVM

OperationDescription OperationId OperationStatus
-------------------- ----------- ---------------
Update-AzureVM 14bc4198-5ba5-445d-8682-40c779e253ea Succeeded

3. 查看配置情况:

PS C:\Users\hengz> $mvip = Get-AzureDeployment -ServiceName hwmvip
PS C:\Users\hengz> $mvip.VirtualIPs
Address : 42.159.28.150
IsDnsProgrammed : True
Name : hwmvip01ContractContract
ReservedIPName :
ExtensionData :
Address : 42.159.29.129
IsDnsProgrammed :
Name : vip1
ReservedIPName :
ExtensionData :
Address : 42.159.29.4
IsDnsProgrammed :
Name : vip2
ReservedIPName :
ExtensionData :
PS C:\Users\hengz> get-azurevm -ServiceName hwmvip -Name hwmvip01 | Get-AzureEndpoint
LBSetName : myLBSet01
LocalPort : 80
Name : myEndpoint01
Port : 80
Protocol : tcp
Vip : 42.159.29.129
ProbePath :
ProbePort : 80
ProbeProtocol : tcp
ProbeIntervalInSeconds : 15
ProbeTimeoutInSeconds : 31
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes :
LoadBalancerDistribution :
VirtualIPName : vip1
LBSetName : myLBSet02
LocalPort : 81
Name : myEndpoint02
Port : 80
Protocol : tcp
Vip : 42.159.28.150
ProbePath :
ProbePort : 81
ProbeProtocol : tcp
ProbeIntervalInSeconds : 15
ProbeTimeoutInSeconds : 31
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes :
LoadBalancerDistribution :
VirtualIPName : hwmvip01ContractContract
LBSetName : myLBSet03
LocalPort : 82
Name : myEndpoint03
Port : 80
Protocol : tcp
Vip : 42.159.29.4
ProbePath :
ProbePort : 82
ProbeProtocol : tcp
ProbeIntervalInSeconds : 15
ProbeTimeoutInSeconds : 31
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes :
LoadBalancerDistribution :
VirtualIPName : vip2
LBSetName :
LocalPort : 22
Nme : SSH
Port : 22122
Protocol : tcp
Vip : 42.159.28.150
ProbePath :
ProbePort : 0
ProbeProtocol :
ProbeIntervalInSeconds :
ProbeTimeoutInSeconds :
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes :
LoadBalancerDistribution :
VirtualIPName : hwmvip01ContractContract
PS C:\Users\hengz> get-azurevm -ServiceName hwmvip -Name hwmvip02 | Get-AzureEndpoint
LBSetName : myLBSet01
LocalPort : 80
Name : myEndpoint00
Port : 80
Protocol : tcp
Vip :
ProbePath :
ProbePort : 80
ProbeProtocol : tcp
ProbeIntervalInSeconds : 15
ProbeTimeoutInSeconds : 31
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes :
LoadBalancerDistribution :
VirtualIPName : vip1
LBSetName : myLBSet03
LocalPort : 82
Name : myEndpoint013
Port : 80
Protocol : tcp
Vip :
ProbePath :
ProbePort : 82
ProbeProtocol : tcp
ProbeIntervalInSeconds : 15
ProbeTimeoutInSeconds : 31
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes :
LoadBalancerDistribution :
VirtualIPName : vip2
LBSetName : myLBSet02
LocalPort : 81
Name : myEndpoint02
Port : 80
Protocol : tcp
Vip : 42.159.28.150
ProbePath :
ProbePort : 81
ProbeProtocol : tcp
ProbeIntervalInSeconds : 15
ProbeTimeoutInSeconds : 31
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes :
LoadBalancerDistribution :
VirtualIPName : hwmvip01ContractContract
LBSetName :
LocalPort : 22
Name : SSH
Port : 22222
Protocol : tcp
Vip : 42.159.28.150
ProbePath :
ProbePort : 0
ProbeProtocol :
ProbeIntervalInSeconds :
ProbeTimeoutInSeconds :
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes :
LoadBalancerDistribution :
VirtualIPName : hwmvip01ContractContract

可以看到我们预期的配置在两台服务器上实现了。两台服务器各属于3个不同的负载均衡组,三个负载均衡组各对应一个IP地址,对外发布的端口号都是80。

至此配置结束。

Azure一个Cloud Service支持多个公网地址的更多相关文章

  1. 微软Azure平台 cloud service动态申请证书并绑定证书碰到的坑

    我们有一个saas平台 部分在azure的cloud service 使用lets encrypt来申请证书.每一个商家申请域名之后就需要通过Lets encrypt来得到证书并绑定证书. 主要碰到的 ...

  2. 跟我学Windows Azure 四 Cloud Service中的WebRole与WorkRole,及他们之间的通信

    Cloud Service 中WebRole就相当与我们的WebSite,而WorkRole相当与我们在服务器上写了个Windows Service,站在高可用的角度上来讲,Cloud Service ...

  3. Windows Azure Cloud Service (37) 浅谈Cloud Service

    <Windows Azure Platform 系列文章目录> 最近在和一些客户聊天,常常被遇到这样的问题: 1.问题一:我在创建一个新的Windows Azure Virtual Mac ...

  4. Windows Azure Cloud Service (44) 将Cloud Service加入Virtual Network Subnet,并固定Virtual IP Address(VIP)

    <Windows Azure Platform 系列文章目录> 在之前的文章中,笔者已经详细介绍了如何将Virtual Machine加入Virtual Network,并且绑定固定的Pr ...

  5. 在Azure Cloud Service中部署Java Web App(1)

    Microsoft Azure是一个开放的,灵活的云平台,除了对自家的.Net平台有良好的支持外,对于各种开源的软件,语言,工具,框架都有着良好的支持,比如Java,Php,Python等等,你可以使 ...

  6. windows azure Vm、cloud service、web application 如何选择可用的服务

    windows azure 的web应用和虚拟机都经常用.我们经常把我们的网站部署上去.一般选择web应用或者开一个虚拟机.开一个虚拟机就会按照虚拟机的使用时间进行计费. 那么我们选择web部署在哪里 ...

  7. Windows Azure Cloud Service (36) 在Azure Cloud Service配置SSL证书

    <Windows Azure Platform 系列文章目录> 在某些时候,我们需要在Azure PaaS Cloud Service配置HTTPS连接.本章将介绍如何在本地创建证书,然后 ...

  8. Windows Azure Cloud Service (38) 微软IaaS与PaaS比较

    <Windows Azure Platform 系列文章目录> 最近一直想总结Azure IaaS和PaaS的区别与比较,写个博文详细说明一下.建议读者在阅读之前,先熟悉微软PaaS和Ia ...

  9. Windows Azure Cloud Service (40) 使用VS2013的publishSettings文件,发布Cloud Service

    <Windows Azure Platform 系列文章目录> 在之前的文档中,笔者已经介绍了如何使用本地证书上传至云端的方式,将本地的Cloud Service发布至云端. 在本章中,笔 ...

随机推荐

  1. servletResponse outputStream输出数据

    package response; import java.io.IOException;import java.io.OutputStream; import javax.servlet.Servl ...

  2. 你要的最后一个字符就在下面这个字符串里,这个字符是下面整个字符串中第一个只出现一次的字符。(比如,串是abaccdeff,那么正确字符就是b了)

    include "stdafx.h" #include<iostream> #include<string> using namespace std; in ...

  3. 图像处理之全景拼接---基于sift的全景图像拼接

    http://blog.csdn.net/masibuaa/article/details/9246493#comments

  4. 图像处理之log---log算子

    在图像中,边缘可以看做是位于一阶导数较大的像素处,因此,我们可以求图像的一阶导数来确定图像的边缘,像sobel算子等一系列算子都是基于这个思想的. 但是这存在几个问题:1. 噪声的影响,在噪声点处一阶 ...

  5. 异常: 2 字节的 UTF-8 序列的字节 2 无效。

    具体异常: 十二月 08, 2015 7:16:55 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.servi ...

  6. 获取网站的BaseURL

    //get base URL            var _urlstr = window.location.href;            if (_urlstr.indexOf("? ...

  7. 基于zookeeper或redis实现分布式锁

    前言 在分布式系统中,分布式锁是为了解决多实例之间的同步问题.例如master选举,能够获取分布式锁的就是master,获取失败的就是slave.又或者能够获取锁的实例能够完成特定的操作. 目前比较常 ...

  8. Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式

    转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFES ...

  9. a positive definite matrix

    https://en.wikipedia.org/wiki/Definite_quadratic_form https://www.math.utah.edu/~zwick/Classes/Fall2 ...

  10. PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析(转)

    sort() 函数用于对数组单元从低到高进行排序. rsort() 函数用于对数组单元从高到低进行排序. asort() 函数用于对数组单元从低到高进行排序并保持索引关系. arsort() 函数用于 ...