一段时间后无法在 Google DataProc 上启动 DataLab

Can't launch DataLab on Google DataProc after a while

我在安装了 Datalab 的 DataProc 上创建了一个集群。我使用以下命令访问数据实验室:

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)。谁能帮我解决这个问题?谢谢。

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

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

检查以确保在您离开时没有人在您的 VM 上单击 STOP。启动 VM 备份应该让它再次工作。