【问题标题】:Web Preview from CloudShell of Jupyter Lab doesn't workJupyter Lab 的 CloudShell 的 Web 预览不起作用
【发布时间】:2018-07-03 20:57:59
【问题描述】:

我正在使用说明从 Cloud Shell 启动深度学习图像:

export IMAGE_FAMILY="tf-latest-cu92"
export ZONE="us-central1-f"
export INSTANCE_NAME="myvm"

gcloud compute instances create $INSTANCE_NAME \
   --zone=$ZONE  \
  --image-family=$IMAGE_FAMILY  \
  --image-project=deeplearning-platform-release  \
  --maintenance-policy=TERMINATE  \
  --accelerator='type=nvidia-tesla-v100,count=1' \
   --metadata='install-nvidia-driver=True'

VM 启动,我可以通过 ssh 访问它并看到 Jupyter Lab 正在运行。

但是,我无法从 Cloud Shell 执行 WebPreview 以连接到它。我究竟做错了什么?

【问题讨论】:

    标签: google-dl-platform


    【解决方案1】:

    很遗憾,深度学习图像上从 CloudShell 到 JupyterLab 的 WebPreview 目前无法正常工作。团队正在为此努力。

    在此之前,请从您的笔记本电脑上安装和使用 gcloud ssh(注意实例名称和 -L 之间的 --):

    export INSTANCE_NAME="myvm"
    gcloud compute ssh $INSTANCE_NAME -- -L 8080:localhost:8080
    

    【讨论】:

      【解决方案2】:

      您无法使用 Cloud Shell Web 预览连接到 JupyterLab 的原因是 Web 预览连接到您的 Cloud Shell VM 实例,而 JupyterLab 运行在您使用 gcloud compute instances create 创建的 myvm(一个单独的实例)上

      但是,您可以 Cloud Shell 中使用 ssh 隧道,就像您在自己的答案中提出的那样,然后使用 Cloud Shell 网络预览。

      例如,如果我在设置环境变量并创建实例后在 Cloud Shell 中执行以下操作,则可以使用 Web 预览成功连接到 JupyterLab:

      export IMAGE_FAMILY="tf-latest-cu92"
      export ZONE="us-central1-f"
      export INSTANCE_NAME="myvm"
      
      gcloud compute instances create ...
      
      gcloud compute ssh $INSTANCE_NAME --zone=$ZONE  -- -L 8080:localhost:8080
      

      更新:正如 cmets 中所指出的,以上内容不足以让 JupyterLab(如深度学习映像中的配置)与 Cloud Shell 一起工作;我们还需要配置 JupyterLab 以允许跨域请求。由于我们通过 ssh 进行隧道传输,因此将 JupyterLab 连接限制到 localhost 也是一个好习惯(出于安全原因)。为此,请在 myvm 上运行以下命令(例如,在上面设置隧道之后):

      myvm$ sudo sed -i \
                     -e "s/\(c.NotebookApp.ip\).*/\1 = 'localhost'/g; \
                         s/\(c.NotebookApp.allow_origin\).*/\1 = '*'/g" \
                     /root/.jupyter/jupyter_notebook_config.py
      myvm$ sudo pkill jupyter-lab # restart to pick up config
      

      【讨论】:

      • FWIW,我可以通过这种方式连接到 Jupyter Lab 界面,但实际上做任何事情——比如创建笔记本——都会导致许多 404 错误。我没有在具有本机 shell 的系统上进行测试,仅在 Chromebook 上进行测试。
      • 这不适用于 Jupyter Lab,看起来与 Cloud Shell 一起使用的代理与 Jupyter Lab 不完全兼容 :( 即使您可以连接并查看初始 Jupyter Lab 屏幕(这可能会导致假设它确实有效),但任何创建新笔记本的尝试都将导致 404。
      • @ToddR 感谢您的关注,显然我没有对 Jupyter Lab 进行足够深入的测试。我更新了答案,增加了有关调整 JupyterLab 配置以使其工作的说明。
      • @ViacheslavVKovalevskyi,我用修改 JupyterLab 配置的附加说明更新了答案。
      猜你喜欢
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      相关资源
      最近更新 更多