zoukankan      html  css  js  c++  java
  • Azure一个Cloud Service支持多个公网地址

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

    这个功能主要是用于:

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

    比如:

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

    这时需要:

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

      PS C:Usershengz> Add-AzureVirtualIP -ServiceName hwmvip -VirtualIPName vip1

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

      PS C:Usershengz> Add-AzureVirtualIP -ServiceName hwmvip -VirtualIPName vip2

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

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

    PS C:Usershengz> 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:Usershengz> 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:Usershengz> 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:Usershengz> 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:Usershengz> 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:Usershengz> 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:Usershengz> $mvip = Get-AzureDeployment -ServiceName hwmvip
    PS C:Usershengz> $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:Usershengz> 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:Usershengz> 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。

    至此配置结束。

  • 相关阅读:
    Vue vue-resource三种请求数据方式pet,post,jsonp
    Vue 各个阶段生命周期函数
    Vue v-if和v-show的使用.区别
    vue v-for循环中key属性的使用
    vue v-for循环使用
    Vue 设置style属性
    Vue 设置class样式
    Vue 双向数据绑定v-model
    Vue的事件修饰符
    关于“svn: Can't connect to host '*.*.*.*': 由于连接方在一段时间后没有正确答复或连接”的解决方法
  • 原文地址:https://www.cnblogs.com/hengwei/p/4761496.html
Copyright © 2011-2022 走看看