Веб-превью от CloudShell из Jupyter Lab не работает - PullRequest
0 голосов
/ 03 июля 2018

Я использую инструкции для запуска Deep Learning Image из 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'

Виртуальная машина запускается, и я могу подключиться к ней по ssh и увидеть, что Jupyter Lab работает.

Однако я не могу сделать WebPreview из Cloud Shell для подключения к нему. Что я делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Причина, по которой вы не можете использовать веб-предварительный просмотр Cloud Shell для подключения к JupyterLab, заключается в том, что веб-предварительный просмотр подключается к вашему экземпляру Cloud Shell VM, в то время как JupyterLab работает на myvm (отдельном экземпляре), который вы создали с помощью gcloud compute instances create

Однако вы можете использовать ssh туннелирование в Cloud Shell, так же, как вы предлагаете в своем собственном ответе, а затем использовать предварительный просмотр Cloud Shell.

Например, я могу успешно подключиться к JupyterLab с помощью веб-предварительного просмотра, если я выполню следующее в Cloud Shell после настройки переменных среды и создания экземпляра:

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

ОБНОВЛЕНИЕ : Как указано в комментариях, вышеприведенного недостаточно для того, чтобы JupyterLab (как настроено в Deep Learning Image) работал с Cloud Shell; нам также нужно настроить JupyterLab, чтобы разрешать запросы между источниками. Поскольку мы туннелируем через ssh, рекомендуется также ограничивать соединения JupyterLab локальным хостом (по соображениям безопасности). Для этого выполните следующие команды на 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
0 голосов
/ 03 июля 2018

К сожалению, WebPreview от CloudShell до JupyterLab на образе глубокого обучения в настоящее время не работает. Команда работает над этим.

До этого, пожалуйста, установите и используйте gcloud ssh со своего ноутбука (обратите внимание на - между именем экземпляра и -L):

export INSTANCE_NAME="myvm"
gcloud compute ssh $INSTANCE_NAME -- -L 8080:localhost:8080
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...