过一阵子无法在Google DataProc上启动DataLab

时间:2019-04-05 18:22:17

标签: google-cloud-dataproc google-cloud-datalab

我在安装了Datalab的DataProc上创建了一个集群。我使用以下命令访问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 个答案:

答案 0 :(得分:1)

假设它不仅在实例启动时处于狭窄的时间范围内,还没有分配地址,在运行时,您不必担心外部IP被释放,因此很可能是错误的错误。

通常,当实例处于TERMINATED状态时,这会错误地发生。这与您配置为完全不使用外部IP的情况相反,否则您将收到类似Instance [foo] in zone [bar] does not have an external IP address的消息。这是因为在TERMINATED实例中,没有活动的VM资源,但是配置元数据必须仍然包含networkInterface配置,以保留实例的完整配置元数据,并且gcloud compute逻辑当前假定如果定义了networkInterfaces.accessConfigs,期望“最终”具有natIP字段。

检查以确保有人不在时不在您的VM上单击STOP。启动虚拟机备份应使其重新工作。