Облачная служба Azure, подключенная к виртуальной сети Azure - внутренний IP-адрес статический или динамический?

Я развернул облачную службу (НЕ виртуальную машину) и подключил ее к виртуальной сети, которую я создал, со следующей конфигурацией облачной службы:

    <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-адрес не изменяется при сбросе экземпляра и т. Д.

1 ответ

Решение

У меня была такая же проблема с несколькими экземплярами.

Насколько я знаю, ips динамичны. Это по уважительной причине. При динамическом добавлении экземпляров для разных ролей прогнозирование ips будет кошмаром конфигурации.

Я решил это через внутренний балансировщик нагрузки. Использование внутреннего балансировщика нагрузки позволяет вам определить один статический IP-адрес, который учитывает, что несколько VPN / рабочих ролей могут быть адресованы внутри VPN. Посмотрите здесь обзор внутреннего балансировщика нагрузки

--- Обновить ---

Чтобы уточнить: Внутренние балансировщики нагрузки в веб-ролях и рабочих ролях работают, посмотрите на части, которые вы должны добавить, чтобы он заработал. В отличие от ILB для виртуальных машин, вам не нужен Powershell, просто настройка.

  1. вставьте определение loadbalancer в ваш ServiceConfiguration.Cloud.cscfg:

    <LoadBalancers>
     <LoadBalancer name="loadbalancername">
      <FrontendIPConfiguration type="private" subnet="subnet-name" staticVirtualNetworkIPAddress="{your static ip}" />
     </LoadBalancer>
    </LoadBalancers>
    
  2. Добавьте свою точку входа в соответствующую веб / рабочую роль в ServiceDefinition.csdef:

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

Вы должны настроить подмножество как часть ServiceDefinition.csdef. Статический ip должен быть частью подсети.

Пожалуйста, обратитесь к этому для получения дополнительной информации. У меня также были некоторые проблемы с настройкой. Документация не настолько полная.

Другие вопросы по тегам