#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
на вашу виртуальную машину, пока вас не было. Запуск резервной копии виртуальной машины должен заставить ее снова работать.