排查 Cloud Workstations 问题

本页面包含问题排查信息,可帮助您解决 Cloud Workstations 的问题。

将系统映像拉取到虚拟机

当您使用工作站配置创建工作站时,Cloud Workstations 会从 Artifact Registry(或 Container Registry)将系统映像拉取到虚拟机 (VM) 实例。系统会显示类似于以下内容的错误消息:

System images cannot be pulled onto workstation VMs using this configuration.
Ensure that you have set up Cloud NAT or enabled Private Google Access for
Artifact Registry (and Container Registry).

如果无法拉取这些映像,您可能无法启动工作站。下面为您提供了一些建议:

预配虚拟机时超时

当您使用工作站配置创建工作站时,Cloud Workstations 会创建一个 Compute Engine 来支持您的工作站。如果预配虚拟机时出错,系统会显示类似于以下内容的出错提示:

Workstations using this configuration cannot be provisioned due to an unknown error.

下面为您提供了一些建议:

设置 Cloud NAT 或启用专用 Google 访问通道

如果您在配置中停用了公共 IP 地址,请使用以下选项之一:

  • 设置 Cloud NAT,以允许 Cloud Workstations 将映像拉取到工作站虚拟机。
  • 在子网上启用专用 Google 访问通道。如果您使用 private.googleapis.com 或 restricted.googleapis.com 域名,请创建 DNS 记录以将流量定向到与这些网域关联的 IP 地址。具体而言,您需要确保启用对 Artifact Registry 和 Container Registry 网域(分别对应于 *.pkg.dev 和 *.gcr.io)的访问权限。

如需了解详情,请参阅“配置专用 Google 访问通道”> 高级网络配置。

确保 API 已启用且可通过 VPC 访问

如果您的项目位于 VPC Service Controls 边界内,请确保可从您的服务边界内的虚拟私有云 (VPC) 访问 Cloud Storage API、Container Registry API 和 Artifact Registry API。

更新防火墙规则以允许 TCP 出站流量

确保您允许网络中的 TCP 出站流量通过端口 80 和 443,以便 Cloud Workstations 将映像拉取到您的工作站。

检查 Compute Engine 虚拟机启动日志中是否存在可能的错误

Cloud Workstations 创建的虚拟机在启动时会将调试日志输出到串行控制台。当服务在创建虚拟机时超时,这些日志会很有用。为工作站创建的虚拟机名称以 workstations- 开头,后跟唯一标识符。使用以下过滤条件在Logs Explorer中过滤日志:

SEARCH("workstations-")
sourceLocation.function="main.setupAndRunScript"

如果您没有看到任何符合此过滤条件的日志,请确保您已在项目中启用串行端口日志记录。如果您在工作站配置中指定了服务账号,请确保该服务账号对项目具有 logging.logEntries.create 权限,以便将日志写入 Cloud Logging。启用串行端口日志记录并添加必要权限后,请尝试再次启动工作站,以确保再次运行 Compute Engine 虚拟机启动脚本来生成日志。

检查 Compute Engine API 日志,找出可能存在的错误

对 Stackdriver 日志使用以下过滤条件:

protoPayload.serviceName="compute.googleapis.com"
severity>=ERROR

Compute Engine API 错误可能会阻止创建工作站虚拟机。

在项目中启用客户机特性

为帮助您进行问题排查,请确保您没有为项目停用客机属性。Cloud Workstations 会在您启动工作站时使用这些属性来检测特定问题,并在工作站配置中将这些问题报告为特定调试消息。

间歇性后端转发错误

如果您在启动工作站时偶尔看到“无法将您的请求转发到后端”错误,则工作站的 Web 服务器可能尚未完全启动。

如需解决此问题,请在工作站配置中添加就绪性检查。就绪性检查可防止工作站在指定端口上的服务器准备好接受请求之前报告其已启动。

调试已停止的工作站

如果工作站意外停止,请检查平台日志或容器输出日志以确定原因。这些日志有助于识别工作站启动失败、突然关停或一般错误。

使用 CMEK 时工作站同时关停

如果您的所有工作站同时关停,并且您的工作站配置使用客户管理的加密密钥 (CMEK),请验证您是否已在 CMEK 上配置适当的权限。

具体而言,请检查 Compute Engine 服务代理 (service-PROJECT_NUMBER@compute-system.) 是否具有 CMEK 的 Cloud Key Management Service CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色。如果 Compute Engine Service Agent 没有访问密钥所需的权限,Compute Engine 会自动关停底层虚拟机。如需了解详情,请参阅使用 CMEK 加密工作站资源。