本页包含问题排查信息,可帮助您解决 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 NAT 或启用专用 Google 访问通道。
- 确保已启用 API 且可从 VPC 访问。
- 更新防火墙规则以允许 TCP 出站流量。
- 检查 Compute Engine 虚拟机启动日志中是否存在可能的错误。
- 在项目中启用客机特性。
为虚拟机预配资源时超时
当您使用工作站配置创建工作站时,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 边界内,请确保 Cloud Storage API、 Container Registry API 和 Artifact Registry API 可从服务边界内的虚拟私有云 (VPC) 访问 。
更新防火墙规则以允许 TCP 出站流量
确保您允许网络中的 TCP 出站流量通过端口 80 和 443,以便 Cloud Workstations 将映像拉取到您的工作站。
检查 Compute Engine 虚拟机启动日志中是否存在可能的错误
Cloud Workstations 创建的虚拟机在启动时会将调试日志输出到串行控制台。
当服务在创建虚拟机时超时,这些日志可能会很有用。
为工作站创建的虚拟机名称以 workstations- 开头,后跟唯一标识符。
使用以下过滤条件在日志浏览器中过滤日志:
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 会使用这些特性在您启动工作站时检测某些问题,并将这些问题作为工作站配置中的特定调试消息报告。
调试已停止的工作站
如果工作站意外停止,请检查 平台日志或 容器输出日志以 确定原因。这些日志有助于识别工作站启动失败、突然关闭或一般错误。
使用 CMEK 时同时关闭工作站
如果所有工作站同时关机,并且工作站配置使用客户管理的加密密钥 (CMEK),请验证您是否已在 CMEK 上配置了适当的权限。
具体而言,请检查 Compute Engine 服务代理 (service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com) 是否对 CMEK 具有 Cloud Key Management Service CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色。如果 Compute Engine 服务代理没有访问密钥所需的权限,Compute Engine 会自动关闭底层虚拟机。
如需了解详情,请参阅
使用 CMEK 加密工作站资源。