排解 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.com 或 restricted.googleapis.com 網域名稱,請建立 DNS 記錄,將流量導向與這些網域相關聯的 IP 位址。具體來說,您必須確保啟用 Artifact Registry 和 Container Registry 網域的存取權,這兩個網域分別對應至 *.pkg.dev 和 *.gcr.io。

詳情請參閱「設定私人 Google 存取權」>「 進階網路設定」。

確認 API 已啟用,且可透過虛擬私有雲存取

如果專案位於 VPC Service Controls 範圍內,請確認 Cloud Storage API、Container Registry API 和 Artifact Registry API 在服務範圍內可透過虛擬私有雲 (VPC) 存取。

更新防火牆規則,允許 TCP 輸出

請務必在網路中允許 TCP 輸出至通訊埠 80 和 443,讓 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 會在您啟動工作站時,使用這些屬性偵測特定問題,並在工作站設定中將這些問題回報為特定偵錯訊息。

間歇性後端轉送錯誤

如果啟動工作站時,間歇性出現「無法將要求轉送至後端」錯誤,表示工作站的網路伺服器可能尚未完全啟動。

如要解決這個問題,請在工作站設定中新增就緒檢查。在指定通訊埠上的伺服器準備好接受要求之前,readiness 檢查會阻止工作站回報已啟動。

對已停止的工作站進行偵錯

如果工作站意外停止,請查看平台記錄或容器輸出記錄,找出原因。這些記錄有助於找出工作站啟動失敗、突然關機或一般錯誤。

使用 CMEK 時同時關閉工作站

如果所有工作站同時關閉,且工作站設定使用客戶自行管理的加密金鑰 (CMEK),請確認您已為 CMEK 設定適當權限。

具體來說,請確認 Compute Engine 服務代理 (service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com) 具備 CMEK 的 Cloud Key Management Service CryptoKey 加密者/解密者 (roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色。如果 Compute Engine 服務代理沒有存取金鑰所需的權限,Compute Engine 會自動關閉基礎 VM。詳情請參閱「使用 CMEK 加密工作站資源」。