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。

    至此配置结束。

  • 相关阅读:
    https://github.com/fffaraz/awesome-cpp 清单
    https://github.com/ziadoz/awesome-php 清单
    直播系统的流媒体怎么传输才不会卡顿?
    如何搭建一个完整的视频直播系统?
    html的rowspan和colspan
    Redisson分布式锁实战(适用于Redis高并发场景)
    Spring Boot JDBC:加载DataSource过程的源码分析及yml中DataSource的配置
    SpringBoot 为什么能够自动的注入一些常用的Bean ?
    @JsonFormat与@DateTimeFormat注解的使用
    Failed to bind properties under 'spring.datasource' to javax.sql.DataSource
  • 原文地址:https://www.cnblogs.com/hengwei/p/4761496.html
Copyright © 2011-2022 走看看