Не удается запустить DataLab в Google DataProc через некоторое время

#google-cloud-dataproc #google-cloud-datalab

#google-cloud-dataproc #google-cloud-datalab

Вопрос:

Я создал кластер в DataProc с установленным Datalab. Я использовал следующие команды для доступа к dataLab:

 export ZONE=us-central1-b;export CLUSTER_NAME=test;

gcloud compute ssh ${CLUSTER_NAME}-m --zone=${ZONE} --ssh-flag='-D 10001' --ssh-flag='-N' --ssh-flag='-n'

/Applications/Google Chrome.app/Contents/MacOS/Google Chrome 
"http://${CLUSTER_NAME}-m:8080" 
--proxy-server='socks5://localhost:10001' 
--host-resolver-rules='MAP * 0.0.0.0 , EXCLUDE localhost' 
--user-data-dir='/tmp'
  

И это работает некоторое время. Я вообще ничего не менял, но примерно через 2-3 часа я выполнил те же команды, что и выше, я не могу снова получить доступ к dataLab и получить следующую ошибку:

 ERROR: (gcloud.compute.ssh) Instance [test-m] in zone [us-central1-b] has not been allocated an external IP address yet. Try rerunning this command later.
  

Я пытался много раз позже и никогда не мог добиться успеха из-за первой ошибки. Это происходит с каждым кластером, который я создал (т. Е. Не удается получить доступ к dataLab кластера через некоторое время). Может кто-нибудь, пожалуйста, помочь мне с этим? Спасибо.

Комментарии:

1. Какова была ваша полная команда для создания кластера в первую очередь?

2. И когда вы говорите «выполнили те же команды», вы имеете в виду, что выполнили команду для создания нового кластера, или вы имеете в виду, что вы выполнили те же команды «gcloud compute ssh» для существующего кластера, который раньше работал?

3. Я имею в виду запуск команд доступа к dataLab существующего кластера. Я отредактировал OP, чтобы включить команду, которую я использовал для создания кластера.

4. Если вы введете gcloud compute instances describe test-m --zone us-central1-b , вы успешно получите полную конфигурацию ресурса экземпляра? В частности, есть ли networkInterfaces поле с accessConfigs и natIP полем?

5. Да, я вижу два поля.

Ответ №1:

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

Обычно это происходит ошибочно, когда экземпляр находится в ЗАВЕРШЕННОМ состоянии. Это в отличие от случаев, когда вы настраиваете, чтобы вообще не использовать внешний IP, где в противном случае вы получили бы сообщение типа Instance [foo] in zone [bar] does not have an external IP address . Это связано с тем, что в ЗАВЕРШЕННОМ экземпляре нет активного ресурса виртуальной машины, но метаданные конфигурации все равно должны содержать networkInterface config для сохранения полных метаданных конфигурации экземпляра, и gcloud compute логика в настоящее время предполагает, что если networkInterfaces.accessConfigs определено, что ожидается, что в «конечном итоге» будет natIP поле.

Убедитесь, что кто-то не нажимал STOP на вашу виртуальную машину, пока вас не было. Запуск резервной копии виртуальной машины должен заставить ее снова работать.