与 Azure 虚拟网络连接的 Azure 云服务 - 内部 IP 是静态的还是动态的?

Azure Cloud Service connected with Azure Virtual Network - is the internal IP static or dynamic?

我已经部署了云服务(不是虚拟机)并将其附加到我使用以下云服务配置创建的虚拟网络:

    <NetworkConfiguration>
    <VirtualNetworkSite name="MyVirtualNetwork" />
    <AddressAssignments>
      <InstanceAddress roleName="SampleAzureVpn">
        <Subnets>
          <Subnet name="Subnet-1" />
        </Subnets>
      </InstanceAddress>
    </AddressAssignments>
  </NetworkConfiguration>

当我在 Azure 管理面板中进入虚拟网络仪表板时,我可以看到我的实例的 IP 设置为 192.168.176.133。

现在的问题是,这是静态 IP,还是可以针对给定实例进行更改?我需要确保此 IP 在实例重置等情况下不会更改。

我在多个实例中遇到了同样的问题。

据我所知,ips 是动态的。这是有充分理由的。当为不同的角色动态添加实例时,ips 的预测将是一个配置噩梦。

我通过内部负载平衡器解决了这个问题。使用内部负载平衡器允许您定义一个静态 IP 地址,考虑到可以从 VPN 内寻址多个网络/工作者角色。看这里 internal load balancer overview

---更新---

澄清一下:Web 上的内部负载平衡器和辅助角色确实有效,请查看您必须添加的部分才能实现 运行。与虚拟机的 ILB 不同,您不需要 Powershell,只需要配置。

  1. 将负载均衡器定义放入您的 ServiceConfiguration.Cloud.cscfg:

    <LoadBalancers>
     <LoadBalancer name="loadbalancername">
      <FrontendIPConfiguration type="private" subnet="subnet-name" staticVirtualNetworkIPAddress="{your static ip}" />
     </LoadBalancer>
    </LoadBalancers>
    
  2. 将您的输入端点添加到 ServiceDefinition.csdef 中有问题的 web/workerrole:

    <Endpoints>
      <InputEndpoint name="faredb-reader-ilb-endpoint-http" protocol="http" localPort="8080" port="8080" loadBalancer="loadbalancername" />
    </Endpoints>
    

您必须已将子集配置为 ServiceDefinition.csdef 的一部分。静态 ip 应该是子网的一部分。

更多信息请参考this。我在设置它时也遇到了一些麻烦。文档不是很完整。