排解 Cloud Workstations 問題

本頁面提供疑難排解資訊,協助您解決 Cloud Workstations 的問題。

將系統映像檔提取至 VM

使用工作站設定建立工作站時,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).

如果無法提取這些映像檔,您可能就無法啟動工作站。以下是一些建議:

佈建 VM 時逾時

使用工作站設定建立工作站時,Cloud Workstations 會建立 Compute Engine 來支援工作站。如果佈建 VM 時發生錯誤,顯示的錯誤訊息會類似於下列內容:

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

以下是一些建議:

設定 Cloud NAT 或啟用 Private Google Access

如果您在設定中停用了公開 IP 位址,請使用下列其中一個選項:

  • 設定 Cloud NAT,允許 Cloud Workstations 將映像檔提取到工作站 VM。

  • 在子網路中啟用Private Google Access。如果您使用 private.googleapis.comrestricted.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 輸出

請確保您允許網路在通訊埠 80 和 443 上輸出 TCP,讓 Cloud Workstations 將映像檔提取至工作站。

檢查 Compute Engine VM 啟動記錄,找出可能發生的錯誤

Cloud Workstations 建立的 VM 會在啟動時,將偵錯記錄輸出至序列埠控制台。如果服務在建立 VM 時逾時,這些記錄會很有幫助。為工作站建立的 VM 名稱會以 workstations- 開頭,後面接著專屬 ID。在記錄檔探索工具中,使用下列篩選條件篩選記錄:

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

如果使用這個篩選條件後沒有看到任何記錄,請確認您已在專案中啟用序列埠記錄。如果您在工作站設定中指定了服務帳戶,請確認該服務帳戶在專案中具有 logging.logEntries.create 權限,因此可以將記錄寫入 Cloud Logging。啟用序列埠記錄並新增必要權限後,請嘗試重新啟動工作站,確保 Compute Engine VM 開機指令碼會再次執行,以產生記錄。

檢查 Compute Engine API 記錄,找出可能發生的錯誤

對 Stackdriver 記錄套用下列篩選條件:

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

Compute Engine API 錯誤可能會阻礙工作站 VM 的建立作業。

在專案中啟用訪客屬性

為協助排解問題,請確認您未停用專案的訪客屬性。啟動工作站時,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 會自動關閉基礎 VM。詳情請參閱「使用 CMEK 加密工作站資源」。