gcloud: как получить ip-адреса группы управляемых экземпляров - PullRequest
0 голосов
/ 17 сентября 2018

Моя проблема - создать 5 тыс. Экземпляров и получить там публичные IP-адреса.

Специально для зоны us-west1-a я могу создать группу из 50 экземпляров следующим образом:

gcloud compute instance-groups managed create test --base-instance-name morning --size 50 --template benchmark-template-micro --zone us-west1-a

Вопросы:

  1. Как указать старт-скрипт для запуска каждого созданного экземпляра? Я не могу найти их здесь .
  2. Как получить публичные IP-адреса этих созданных экземпляров?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

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

К сожалению, нет API, который бы перечислял IP-адреса экземпляров в группе.Однако существуют API (и команды gcloud) для получения списка экземпляров и IP-адресов экземпляров.Вот пример для извлечения этой информации из командной строки:

gcloud compute instance-groups list-instances $INSTANCE_GROUP --uri \
    | xargs -I '{}' gcloud compute instances describe '{}' \
        --flatten networkInterfaces[].accessConfigs[] \
        --format 'csv[no-heading](name,networkInterfaces.accessConfigs.natIP)'

Чтобы ускорить это, вы можете использовать флаг -P xarg для распараллеливания запросов описания экземпляра.

Поскольку все экземпляры в группе имеют одинаковый префикс.Вы также можете просто сделать поиск списка по префиксу.Хотя это может привести к другому, использующему тот же префикс, даже если он не является частью группы экземпляров:

gcloud compute instances list --filter='name ~ ${PREFIX}*' \
    --flatten networkInterfaces[].accessConfigs[] \
    --format 'csv[no-heading](name,networkInterfaces.accessConfigs.natIP)'
0 голосов
/ 17 сентября 2018

startup-script можно назначить шаблону для instance;см. здесь .

можно получить информацию с помощью gcloud compute instance-groups managed описания .

, в то время как public IP-адресов нет, если вы неназначить external IP-адреса.

...