Как решить «Внешний IP-адрес« IP_ADDRESS_NAME »не был найден в регионе» в GCP - PullRequest
2 голосов
/ 01 июля 2019

Первый вопрос по StackOverflow.Не стесняйтесь спрашивать, нужен ли дополнительный контекст, и заранее благодарим.

Я настраиваю группу управляемых экземпляров Google Compute Engine, которая имеет два требования:

  • Простая конфигурация HTTPS,Следовательно, использование группы управляемых экземпляров с балансировщиком нагрузки.
  • Статический IP-адрес для белого списка IP-адресов третьей стороной.

Я знаю, что статический IP делает его не масштабируемым по горизонтали, но это не имеет значения в этом сценарии.

Проблема, с которой я сталкиваюсь, заключается в том, что статический IP-адрес не может быть применен к группе экземпляров, поскольку GCE заявляет, что имя не найдено в регионе.Дело в том, что область статических IP-адресов - это европа-запад4, а зона управляемой группы - европа-запад4а, поэтому она должна быть в состоянии найти ее, верно?

Так что мой вопрос: почему это не работает??

Я попытался сделать регион группы экземпляров основанным вместо зоны, но это выдает ту же ошибку.

Командная строка выдает ошибку:

# [START create_template]

  gcloud compute instance-templates create ${TEMPLATE} \
    --image-family=${IMAGE_FAMILY} \
    --image-project=${IMAGE_PROJECT} \
    --machine-type=${MACHINE_TYPE} \
    --scopes=${SCOPES} \
    --metadata-from-file startup-script=${STARTUP_SCRIPT} \
    --tags ${TAGS}\
    --metadata BUCKET=${BUCKET} \
    --address=${STATIC_IP_ADDRESS_NAME}

# [END create_template]

# Create the managed instance group.
# [START create_group]
  gcloud compute instance-groups managed create ${GROUP} \
    --base-instance-name ${GROUP} \
    --size 1 \
    --template ${TEMPLATE} \
    --zone europe-west4-a

# [END create_group]

Ожидаемый вывод - создание вычислительного механизма со статическим выходным IP-адресом.

Я получаю следующую ошибку.

ERROR: (gcloud.compute.instance-groups.managed.create) Could not fetch resource:
 - Invalid value for field 'resource.instanceTemplate': 'https://www.googleapis.com/compute/v1/projects/companyproject-test/global/instanceTemplates/service-name-group-tmpl'. Unable to create an instance from instanceTemplate service-name-group-tmpl in zone europe-west4-a:
        Invalid value for field 'instance.networkInterfaces[0].accessConfigs[0].natIP': The specified external IP address 'STATIC_IP_ADDRESS_NAME' was not found in region 'europe-west4'

В документации статических внешних IP-адресов они заявляютчто ресурсы этого региона или зоны могут использовать статический IP-адрес.См. « Статические внешние IP-адреса » в документации.

Также возможна документация, в которой говорится о добавлении адреса в шаблон одного экземпляра. Link

1 Ответ

1 голос
/ 02 июля 2019

Решил проблему, назначив статический IP-адрес одному экземпляру в группе с помощью следующих команд:

# Retrieve the single instance name and save it in a variable
  instance=`gcloud compute instance-groups managed list-instances name-group --zone=europe-west4-a --format="value(instance.basename())"`

# Remove the existing external NAT of the instance
  gcloud compute instances delete-access-config $instance \
    --access-config-name "External NAT" \
    --zone=$ZONE
# Add the new external NAT that has the static address
    gcloud compute instances add-access-config $instance \
   --access-config-name "External NAT" \
    --address $IP_ADDRESS \
    --zone=$ZONE
...