排查 Vertex AI Workbench 问题

本页面介绍了在遇到 Vertex AI Workbench 管理的笔记本和用户管理的笔记本使用问题时可能有助于进行排查的步骤。

如需使用 Vertex AI 其他组件的帮助,另请参阅排查 Vertex AI 问题

代管式笔记本

本部分介绍代管式笔记本的问题排查步骤。如果您要排查用户管理的笔记本问题,请参阅本页面的用户管理的笔记本部分

连接到 JupyterLab 并将其打开

点击“打开 JupyterLab”后没有任何反应

确认您的浏览器未阻止弹出标签页。JupyterLab 会在新的浏览器标签页中打开。

无法通过 SSH 连接到代管式笔记本实例

不支持通过 SSH 访问代管式笔记本实例。

无法访问代管式笔记本实例中的终端

创建代管式笔记本实例时,必须启用终端访问权限。

如果您无法访问终端或在启动器中找不到终端窗口,则可能是因为代管式笔记本实例未启用终端访问权限。

打开 JupyterLab 时出现 502 错误

502 错误可能意味着代管式笔记本实例尚未准备就绪。请等待几分钟,刷新控制台浏览器标签页,然后重试。

打开笔记本会发生 524 (A Timeout Occurred) 错误

过去,524 错误通常表示“反向代理”代理未连接到反向代理服务器,或后端服务器端 (Jupyter) 上处理请求耗时过长。此错误的常见原因包括网络问题、反向代理未运行或 Jupyter 服务未运行。

如果您无法访问笔记本,请验证代管式笔记本实例是否已启动。

笔记本无响应

如果您的代管式笔记本实例未执行任何单元或者看上去似乎被冻结,请先尝试重启内核,方法是点击顶部菜单中的内核,然后点击重启内核。如果这样不起作用,您可以尝试以下操作:

  • 刷新 JupyterLab 浏览器页面。系统不会保存任何未保存的单元输出,因此您必须再次运行这些单元才能重新生成输出。
  • 重置实例

超出 GPU 配额

如需确定您项目的可用 GPU 数量,请查看配额页面。 如果配额页面上未列出 GPU,或者您需要额外的 GPU 配额,您可以申请增加配额。请参阅 Compute Engine 资源配额页面上的申请增加配额

使用执行程序

执行程序无法使用软件包安装

执行程序在与运行笔记本文件代码的内核不同的环境中运行笔记本代码。因此,安装的某些软件包可能无法在执行程序的环境中使用。如需解决此问题,请参阅确保软件包安装可供执行程序使用

使用执行程序运行笔记本代码时出现 401 或 403 错误

如果运行执行程序时出现 401 或 403 错误,可能意味着执行程序无法访问资源。请参阅以下可能原因:

  • 执行程序在与代管式笔记本实例的项目不同的租户项目中运行笔记本代码。因此,当您通过执行程序运行的代码访问资源时,默认情况下,执行程序可能无法连接到正确的 Google Cloud 项目。如需解决此问题,请明确选择项目

  • 默认情况下,代管式笔记本实例可以访问同一项目中存在的资源,因此当您手动运行笔记本文件的代码时,这些资源不需要额外的身份验证。但是,由于执行程序在单独的租户项目中运行,因此它不会具有相同的默认访问权限。 如需解决此问题,请使用服务帐号对访问权限进行身份验证

  • 执行程序不能使用最终用户的凭据对资源的访问权限进行身份验证,例如通过 gcloud auth login 命令。如需解决此问题,请使用服务帐号对访问权限进行身份验证

使用执行程序时发生 exited with a non-zero status of 127 错误

如果您使用执行程序在未安装 nbexecutor 扩展程序的自定义容器上运行代码,则可能会发生 exited with a non-zero status of 127 错误或“找不到命令”错误。

如需确保自定义容器具有 nbexecutor 扩展程序,您可以通过 Deep Learning Containers 映像创建派生容器映像。Deep Learning Containers 映像包含 nbexecutor 扩展程序。

服务网络配置无效错误消息

在网络的分配 IP 范围内找不到任何可用块。使用 /24 或更小的子网掩码。如需了解详情,请参阅设置网络

无法安装第三方 JupyterLab 扩展程序

尝试安装第三方 JupyterLab 扩展程序会导致 Error: 500 消息。

代管式笔记本实例不支持第三方 JupyterLab 扩展程序。

用户管理的笔记本

本部分介绍用户管理的笔记本的问题排查步骤。如果您要排查代管式笔记本问题,请参阅本页面的代管式笔记本部分

连接到 JupyterLab 并将其打开

点击“打开 JupyterLab”后没有任何反应

确认您的浏览器未阻止弹出标签页。JupyterLab 会在新的浏览器标签页中打开。

无法通过反向代理服务器来访问 JupyterLab

Vertex AI Workbench 可使用 Google 内部反向代理服务器来提供对 JupyterLab 的访问权限。用户管理的笔记本实例设置、网络配置及其他因素可能会阻止对 JupyterLab 的访问。使用 SSH 连接到 JupyterLab 并详细了解您为何无法通过反向代理进行访问

无法通过 SSH 连接到用户管理的笔记本实例

用户管理的笔记本实例使用 OS Login 启用 SSH 访问权限。通过将元数据条目 enable-oslogin 值设置为 TRUE,可在用户创建笔记本实例时自动完成此过程。如需为用户启用用户管理的笔记本的 SSH 访问权限,请完成为用户帐号配置 OS Login 角色的步骤

打开用户管理的笔记本实例会导致 403 (Forbidden) 错误

打开用户管理的笔记本实例时,403 (Forbidden) 错误通常意味着存在访问权限问题。

Access Context ManagerBeyondCorp Enterprise 与用户管理的笔记本实例搭配使用可能会导致访问权限问题。这是因为用户管理的笔记本实例与 Access Context Manager 和 BeyondCorp Enterprise 中的 IP 受限访问权限级别不兼容。

如需排查更常见的访问权限问题,请考虑可以向用户管理的笔记本实例授予访问权限的三种方式:

  • 单个用户
  • 服务帐号
  • 项目编辑者

访问模式是在用户管理的笔记本实例的创建期间配置的,并且是在笔记本元数据中定义的:

  • 单个用户:proxy-mode=mail, proxy-user-mail=user@domain.com
  • 服务帐号:proxy-mode=service_account
  • 项目编辑者:proxy-mode=project_editors

如果您在点击打开 JupyterLab 时无法访问笔记本,请尝试以下操作:

以下示例展示了如何在创建实例时指定服务帐号:

gcloud notebooks instances create nb-1 \
  --vm-image-family=tf2-latest-cpu \
  --metadata=proxy-mode=mail,proxy-user-mail=user@domain.com \
  --service-account=your_service_account@project_id.iam.gserviceaccount.com \
  --location=us-west1-a

点击打开 JupyterLab 以打开笔记本时,笔记本将在浏览器的新标签页中打开。如果您已登录多个 Google 帐号,系统会使用您的默认 Google 帐号打开新标签页。如果您未使用默认 Google 帐号创建用户管理的笔记本实例,则浏览器的新标签页会显示 403 (Forbidden) 错误。

无 JupyterLab 访问权限,已启用“单个用户”模式

如果用户无法访问 JupyterLab 且实例对 JupyterLab 的访问权限设置为 Single user only,请尝试以下操作:

  1. 控制台的用户管理笔记本页面上,点击您的实例名称以打开笔记本详情页面。

  2. 点击查看虚拟机详细信息

  3. 在“虚拟机详情”页面上,点击修改

  4. 元数据部分中,验证 proxy-mode 元数据条目是否设置为 mail

  5. 验证 proxy-user-mail 元数据条目是否设置为有效的用户电子邮件地址,而不是服务帐号。

  6. 点击保存

  7. 控制台的用户管理笔记本页面上,通过停止实例并再次启动实例来初始化更新后的元数据。

打开笔记本会发生 504 (Gateway Timeout)错误

这表示内部代理超时或后端服务器 (Jupyter) 超时。以下情况可能导致上述问题:

  • 请求从未到达内部反向代理服务器
  • 后端 (Jupyter) 返回 504 错误。

如果您无法访问笔记本,请采取以下做法:

  • 创建一个 Google 邮件支持记录。

打开笔记本会发生 524 (A Timeout Occurred) 错误

内部反向代理服务器尚未在超时时限内收到“反向代理”代理返回的请求响应。“反向代理”代理在用户管理的笔记本实例中作为 Docker 容器运行。过去,524 错误通常表示“反向代理”代理未连接到反向代理服务器,或后端服务器端 (Jupyter) 上处理请求耗时过长。导致此错误的常见原因在于用户端(例如,网络问题或“反向代理”代理/Jupyter 服务未运行)。

如果您无法访问笔记本,请验证用户管理的笔记本实例是否已启动并尝试以下操作:

方法 1:运行诊断工具以自动检查和修复用户管理的笔记本核心服务,验证可用存储空间,以及生成有用的日志文件。要在实例中运行该工具,请执行以下步骤:

  1. 确保您的实例采用 M58 或更高版本。

  2. 使用 SSH 连接到 Deep Learning VM Image 实例

  3. 运行以下命令:

       sudo /opt/deeplearning/bin/diagnostic_tool.sh [--repair] [--bucket=$BUCKET]
       

    请注意,--repair 标志和 --bucket 标志是可选的。--repair 标志会尝试修复常见的核心服务错误,而 --bucket 标志可让您指定 Cloud Storage 存储桶来存储所创建的日志文件。

    此命令的输出将显示用户管理的笔记本核心服务的有用状态消息,并将导出其发现结果的日志文件。

方法 2:请按照以下步骤逐个检查特定用户管理的笔记本的要求。

打开笔记本会发生 598 (Network read timeout) 错误

反向代理服务器在超过 10 分钟的时间里完全未收到“反向代理”代理返回的响应,这通常表明“反向代理”代理/Jupyter 存在问题的几率极高。

如果您无法访问笔记本,请尝试以下操作:

笔记本无响应

如果您的用户管理的笔记本实例未执行任何单元或者看上去似乎被冻结,请先尝试重启内核,方法是点击顶部菜单中的内核,然后点击重启内核。如果这样不起作用,您可以尝试以下操作:

  • 刷新 JupyterLab 浏览器页面。系统不会保存任何未保存的单元输出,因此您必须再次运行这些单元才能重新生成输出。
  • 从笔记本中的终端会话运行 top 命令,看看是否有进程占用 CPU。
  • 从终端使用 df 命令检查可用磁盘空间大小,或使用 free 命令检查可用 RAM。
  • 通过从用户管理的笔记本页面中选择实例并点击停止来关停该实例。在该实例完全停止后,再选择它并点击启动

使用文件

文件下载已停用,但用户仍然可以下载文件

对于 Dataproc Hub 用户管理的笔记本实例,不支持停用从 JupyterLab 界面下载文件。即使您在创建实例时未选择启用从 JupyterLab 界面下载文件,使用 Dataproc Hub 框架的用户管理笔记本实例也会允许文件下载。

下载的文件被截断或无法完成下载

本部分介绍文件无法下载或截断时(下载时间超过 60 秒)的可能解决方法。

从用户管理的笔记本实例下载文件时,代理转发代理程序上的超时设置会限制下载完成的连接时间。如果下载所用的时间太长,这会截断下载的文件或阻止下载文件。

如需下载文件,请将文件复制到 Cloud Storage,然后从 Cloud Storage 下载文件。

请考虑将您的文件和数据迁移到新的用户管理的笔记本实例。

从 JupyterLab 下载文件时发生 403 (Forbidden) 错误

M23 版本的 Deep Learning VM 中的笔记本软件包存在一个错误,导致您无法使用 JupyterLab 界面下载文件。您可以参阅更新 JL 之后无法下载文件笔记本软件包版本 5.7.6+(5.7.7、5.7.8)中的下载文件功能失常,详细了解该 Bug。

如果您使用的是 Deep Learning VM 的 M23 版本,则可以通过以下两种方式之一解决该问题:

  • 使用 Safari 浏览器。下载功能适用于 Safari。

  • 将笔记本软件包降级到版本 5.7.5。

    要降级笔记本软件包,请执行以下操作:

    1. 使用 SSH 连接到 Deep Learning VM。如需了解如何使用 SSH 连接到 Deep Learning VM,请参阅连接到实例

    2. 运行以下命令:

      sudo pip3 install notebook==5.7.5
      sudo service jupyter restart
      

重启虚拟机后,无法从笔记本终端引用本地文件

有时,重启用户管理的笔记本实例后,无法从笔记本终端引用本地文件。

这是一个已知问题。如需从笔记本终端引用本地文件,请首先使用以下命令重新建立当前工作目录:

cd PWD

在此命令中,请将 PWD 替换为您当前的工作目录。例如,如果您当前的工作目录是 /home/jupyter/,则使用命令 cd /home/jupyter/

重新建立当前工作目录后,便可以从笔记本终端引用您的本地文件。

超出 GPU 配额

如需确定您项目的可用 GPU 数量,请查看配额页面。 如果配额页面上未列出 GPU,或者您需要额外的 GPU 配额,您可以申请增加配额。请参阅 Compute Engine 资源配额页面上的申请增加配额

创建用户管理的笔记本实例

未能成功创建新的用户管理的笔记本实例(权限不足)

用户管理的笔记本实例通常需要大约一分钟时间才能完成创建。如果您新的用户管理的笔记本实例无限期处于 pending 状态,原因可能是用于启动用户管理的笔记本实例的服务帐号没有所需的 Google Cloud Platform (GCP) 项目的 Editor权限。

您可以使用自己创建的自定义服务帐号启动用户管理的笔记本实例,也可以使用一个 userid 在单用户模式下启动实例。如果以单用户模式启动用户管理的笔记本实例,则该实例会首先使用 Compute Engine 默认服务帐号开始启动流程,然后再将控制权转交给您的 userid。

要验证服务帐号是否具备适当的权限,请按照下列步骤操作:

控制台

  1. 在控制台中打开 IAM 页面。

    打开 IAM 页面

  2. 确定与用户管理的笔记本实例配合使用的服务帐号,应为如下帐号之一:

    • 您在创建用户管理的笔记本实例时指定的自定义服务帐号。

    • GCP 项目的 Compute Engine 默认服务帐号,如果您在单用户模式下启动用户管理的笔记本实例,就要用到此帐号。您 GCP 项目的 Compute Engine 默认服务帐号名称为 PROJECT_NUMBER-compute@developer.gserviceaccount.com, 例如:113377992299-compute@developer.gserviceaccount.com

  3. 验证您的服务帐号是否为 Editor 角色。

  4. 如果不是,请修改服务帐号,将其添加到 Editor 角色。

如需了解详情,请参阅 IAM 文档中的授予、更改和撤消对资源的访问权限

gcloud

  1. 安装 Google Cloud CLI(如果您尚未安装)。

  2. 使用以下命令获取 GCP 项目的名称和项目编号。 将 PROJECT_ID 替换为您的 GCP 项目的项目 ID。

    gcloud projects describe PROJECT_ID
    

    您应该会看到类似以下内容的输出,其中显示了您项目的名称 (name:) 和项目编号 (projectNumber:)。

    createTime: '2018-10-18T21:03:31.408Z'
    lifecycleState: ACTIVE
    name: my-project-name
    parent:
     id: '396521612403'
     type: folder
    projectId: my-project-id-1234
    projectNumber: '113377992299'
    
  3. 确定与用户管理的笔记本实例配合使用的服务帐号,应为如下帐号之一:

    • 您在创建用户管理的笔记本实例时指定的自定义服务帐号。

    • GCP 项目的 Compute Engine 默认服务帐号,如果您在单用户模式下启动用户管理的笔记本实例,就要用到此帐号。您 GCP 项目的 Compute Engine 默认服务帐号名称为 PROJECT_NUMBER-compute@developer.gserviceaccount.com, 例如:113377992299-compute@developer.gserviceaccount.com

  4. 使用以下命令为服务帐号添加 roles/editor 角色。将 project-name 替换为您的项目名称,将 service-account-id 替换为您的用户管理的笔记本实例的服务帐号 ID。

    gcloud projects add-iam-policy-binding project-name \
     --member serviceAccount:service-account-id \
     --role roles/editor
    

创建实例会导致 Permission denied 错误

创建实例时,请验证创建实例的用户具有所定义服务帐号的 iam.serviceAccounts.ActAs 权限。

实例上的服务帐号会提供对其他 Google Cloud 服务的访问权限。您可以使用同一项目中的任何服务帐号,但您必须拥有 Service Account User 权限 (iam.serviceAccounts.actAs) 才能创建实例。如果未指定,系统会使用 Compute Engine 的默认服务帐号。

以下示例展示了如何在创建实例时指定服务帐号:

gcloud notebooks instances create nb-1 \
  --vm-image-family=tf2-latest-cpu \
  --service-account=your_service_account@project_id.iam.gserviceaccount.com \
  --location=us-west1-a

如需授予 Service Account User 权限,请参阅允许成员模拟单个服务帐号

创建实例会导致 already exists 错误

创建实例时,请验证 Compute Engine 先前未删除同名的用户管理的笔记本实例,并且该实例仍在 Notebooks API 数据库中。

以下示例显示了如何使用 Notebooks API 列出实例并验证实例的状态。

gcloud notebooks instances list --location=LOCATION

如果实例的状态为 DELETED,请运行以下命令以将其永久删除。

gcloud notebooks instances delete INSTANCE_NAME --location=LOCATION

创建实例会导致资源可用性错误

此资源可用性错误可能如下所示:

Creating notebook INSTANCE_NAME: ZONE does not have
enough resources available to fulfill the request.
Retry later or try another zone in your configurations.

由于某项 Compute Engine 资源(如 GPU 或 CPU)当前不可用,当您尝试在无法容纳您的请求的地区请求新资源时,就会发生资源错误。

资源错误仅适用于该地区中的新资源请求,而不会影响现有资源。资源错误与 Compute Engine 配额无关,仅适用于您在发送请求时在请求中指定的资源,不适用于该地区中的所有资源。 资源错误是暂时性的,可能会根据需求的转变而经常变化。

如需继续操作,您可以尝试以下操作:

  • 在其他可用区中创建资源。
  • 稍后重试请求。
  • 减少您请求的资源量。例如,尝试创建 GPU、磁盘、vCPU 或内存较少的虚拟机。

升级用户管理的笔记本实例

无法升级,因为无法获取实例磁盘信息

单磁盘用户管理的笔记本实例不支持升级。您可能希望将您的用户数据迁移到新的用户管理的笔记本实例

无法升级,因为实例与 UEFI 不兼容

Vertex AI Workbench 依赖于 UEFI 兼容性以完成升级。

通过某些较旧的映像创建的用户管理的笔记本实例与 UEFI 不兼容,因此无法升级。

如需验证您的实例是否与 UEFI 兼容,请在 Cloud Shell 中或安装了 Google Cloud CLI 的任何环境中输入以下命令。

gcloud compute instances describe INSTANCE_NAME \
  --zone=ZONE | grep type

替换以下内容:

  • INSTANCE_NAME:实例的名称
  • ZONE:实例所在的可用区

如需验证您用于创建实例的映像是否兼容 UEFI,请使用以下命令:

gcloud compute images describe VM_IMAGE_FAMILY \
  --project deeplearning-platform-release | grep type

VM_IMAGE_FAMILY 替换为您用于创建实例的映像系列名称

如果您确定实例或映像与 UEFI 不兼容,可以尝试将您的用户数据迁移到新的用户管理的笔记本实例。为此,请完成以下步骤:

  1. 验证您要用于创建新实例的映像是否兼容 UEFI。如需执行此操作,请在 Cloud Shell 中或安装了 Google Cloud CLI 的任何环境中输入以下命令。

    gcloud compute images describe VM_IMAGE_FAMILY \
      --project deeplearning-platform-release --format=json | grep type
    

    VM_IMAGE_FAMILY 替换为要用于创建实例的映像系列名称。

  2. 将您的用户数据迁移到新的用户管理的笔记本实例

升级后无法访问用户管理的笔记本实例

可升级的用户管理的笔记本实例为双磁盘实例,包含一个启动磁盘和一个数据磁盘。升级过程会将启动磁盘升级到新映像,同时将数据保留在数据磁盘上。

如果用户管理的笔记本实例在升级后无法访问,则可能是因为在替换启动磁盘的映像期间发生故障。如需将新的有效映像挂接到启动磁盘,请完成以下步骤。

  1. 如需存储将用于完成此过程的值,请在 Cloud ShellGoogle Cloud CLI 的任何环境中输入以下命令已安装。

    export INSTANCE_NAME=MY_INSTANCE_NAME
    export PROJECT_ID=MY_PROJECT_ID
    export ZONE=MY_ZONE
    

    替换以下内容:

    • MY_INSTANCE_NAME:实例的名称
    • MY_PROJECT_ID:您的项目 ID
    • MY_ZONE:实例所在的可用区
  2. 使用以下命令停止实例:

    gcloud compute instances stop $INSTANCE_NAME \
      --project=$PROJECT_ID --zone=$ZONE
    
  3. 从实例中分离启动磁盘。

    gcloud compute instances detach-disk $INSTANCE_NAME --device-name=data \
      --project=$PROJECT_ID --zone=$ZONE
    
  4. 删除实例的虚拟机。

    gcloud compute instances delete $INSTANCE_NAME --keep-disks=all --quiet \
      --project=$PROJECT_ID --zone=$ZONE
    
  5. 使用 Notebooks API 删除用户管理的笔记本实例。

    gcloud notebooks instances delete $INSTANCE_NAME \
      --project=$PROJECT_ID --location=$ZONE
    
  6. 创建与之前实例名称相同的用户管理的笔记本实例。

    gcloud notebooks instances create $INSTANCE_NAME \
      --vm-image-project="deeplearning-platform-release" \
      --vm-image-family=MY_VM_IMAGE_FAMILY \
      --instance-owners=MY_INSTANCE_OWNER \
      --machine-type=MY_MACHINE_TYPE \
      --service-account=MY_SERVICE_ACCOUNT \
      --accelerator-type=MY_ACCELERATOR_TYPE \
      --accelerator-core-count=MY_ACCELERATOR_CORE_COUNT \
      --install-gpu-driver \
      --project=$PROJECT_ID \
      --location=$ZONE
    

    替换以下内容:

    • MY_VM_IMAGE_FAMILY映像系列名称
    • MY_INSTANCE_OWNER:您的实例所有者
    • MY_MACHINE_TYPE:实例虚拟机的机器类型
    • MY_SERVICE_ACCOUNT:要用于此实例的服务帐号,或使用 "default"
    • MY_ACCELERATOR_TYPE:加速器类型;例如 "NVIDIA_TESLA_K80"
    • MY_ACCELERATOR_CORE_COUNT:核心数;例如 1

监控用户管理的笔记本实例的健康状况

docker-proxy-agent 状态失败

docker-proxy-agent 状态失败后,请按以下步骤操作:

  1. 验证“反向代理”代理是否正在运行。 如果未运行,请转到第 3 步。

  2. 重启“反向代理”代理。

  3. 向“反向代理”服务器重新注册

docker-service 状态失败

docker-service 状态失败后,请按以下步骤操作:

  1. 验证 Docker 服务是否正在运行

  2. 重启 Docker 服务。

jupyter-service 状态失败

jupyter-service 状态失败后,请按以下步骤操作:

  1. 验证 Jupyter 服务是否正在运行。

  2. 重启 Jupyter 服务。

jupyter-api 状态失败

jupyter-api 状态失败后,请按以下步骤操作:

  1. 验证 Jupyter Internal API 是否处于活跃状态。

  2. 重启 Jupyter 服务。

启动磁盘利用率百分比

如果启动磁盘空间的占用率大于 85%,则该磁盘空间处于不健康状况。

如果您的启动磁盘空间状态不健康,请尝试以下操作:

  1. 通过用户管理的笔记本实例中的终端会话或使用 ssh 进行连接,运行命令 df -H 来检查可用磁盘空间大小。

  2. 使用命令 find . -type d -size +100M 帮助您查找可能可以删除的大型文件,但除非您确定此操作的安全性,否则请勿删除这些文件。如果您不确定,可以向支持团队寻求帮助

  3. 如果上述步骤无法解决您的问题,请获取支持

数据磁盘利用率百分比

如果数据磁盘空间的占用率大于 85%,则该磁盘空间处于不健康状况。

如果您的数据磁盘空间状态不健康,请尝试以下操作:

  1. 通过用户管理的笔记本实例中的终端会话或使用 ssh 进行连接,运行命令 df -h -T /home/jupyter 来检查可用磁盘空间大小。

  2. 删除较大的文件可增加可用磁盘空间。使用命令 find . -type d -size +100M 来帮助您查找大型文件。

  3. 如果上述步骤无法解决您的问题,请获取支持

实用流程

使用 SSH 连接到用户管理的笔记本实例

通过在 Cloud Shell 中或安装了 Google Cloud CLI 的任何环境中输入以下命令,使用 ssh 连接到您的实例。

gcloud compute ssh --project PROJECT_ID \
  --zone ZONE \
  INSTANCE_NAME -- -L 8080:localhost:8080

替换以下内容:

  • PROJECT_ID:您的项目 ID
  • ZONE:实例所在的 Google Cloud 可用区。
  • INSTANCE_NAME:实例的名称。

向“反向代理”服务器重新注册

如需向内部反向代理服务器重新注册用户管理的笔记本实例,您可以从用户管理的笔记本页面停止和启动虚拟机,或者通过 SSH 连接到用户管理的笔记本实例,然后输入:

cd /opt/deeplearning/bin
sudo ./attempt-register-vm-on-proxy.sh

验证 Docker 服务状态

如需验证 Docker 服务状态,您可以使用 ssh 连接到由用户管理的笔记本实例,然后输入:

sudo service docker status

验证“反向代理”代理正在运行

如需验证笔记本“反向代理”代理是否正在运行,请通过 SSH 连接到用户管理的笔记本实例,然后输入:

# Confirm Inverting Proxy agent Docker container is running (proxy-agent)
sudo docker ps

# Verify State.Status is running and State.Running is true.
sudo docker inspect proxy-agent

# Grab logs
sudo docker logs proxy-agent

验证 Jupyter 服务状态并收集日志

如需验证 Jupyter 服务状态,您可以使用 ssh 连接到用户管理的笔记本实例,然后输入:

sudo service jupyter status

如需收集 Jupyter 服务日志,请执行以下操作:

sudo journalctl -u jupyter.service --no-pager

验证 Jupyter Internal API 是否处于活跃状态

如需验证 Jupyter Internal API 是否处于活跃状态,您可以通过 SSH 连接到用户管理的笔记本实例,然后输入:

curl http://127.0.0.1:8080/api/kernelspecs

重启 Docker 服务

如需重启 Docker 服务,您可以从用户管理的笔记本页面停止并启动虚拟机,或者通过 SSH 连接到用户管理的笔记本实例,然后输入以下命令:

sudo service docker restart

重启“反向代理”代理

如需重启“反向代理”代理,您可以从用户管理的笔记本页面停止和启动虚拟机,或者通过 SSH 连接到用户管理的笔记本实例,然后输入:

sudo docker restart proxy-agent

重启 Jupyter 服务

如需重启 Jupyter 服务,您可以从用户管理的笔记本页面停止并启动虚拟机,或者通过 SSH 连接到用户管理的笔记本实例,然后输入以下命令:

sudo service jupyter restart

创建用户管理的笔记本实例上的用户数据的副本

如需将实例用户数据的副本存储在 Cloud Storage 中,请完成以下步骤:

  1. 使用 SSH 连接到用户管理的笔记本实例。

  2. 使用 gsutil 将实例的内容复制到 Cloud Storage 存储分区。以下示例命令会将所有笔记本 (.ipynb) 文件从默认目录 /home/jupyter/ 复制到名为 my-bucket/legacy-notebooks 的 Cloud Storage 目录。

    gsutil cp -R /home/jupyter/*.ipynb gs://my-bucket/legacy-notebooks/