Cloud Composer 3 | Cloud Composer 2 | Cloud Composer�
本頁面提供疑難排解資訊,協助您解決建立 Cloud Composer 環境時可能遇到的問題。
如需更新及升級環境的疑難排解資訊,請參閱「排解環境更新與升級問題」。
建立 Cloud Composer 環境時,大多數問題都是由下列原因造成:
服務帳戶權限問題。
防火牆、DNS 或路由資訊不正確。
網路相關問題。例如虛擬私有雲設定無效、IP 位址衝突,或網路 IP 範圍過窄。
配額相關問題。
不相容的機構政策。
您的權限不足,無法建立環境
如果帳戶權限不足,導致 Cloud Composer 無法建立環境,系統會輸出下列錯誤訊息:
ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: The caller
does not have permission
或
ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: User not
authorized to act as service account <service-account-name>.
The user must be granted iam.serviceAccounts.actAs permission, included in
Owner, Editor, Service Account User role. See https://cloud.google.com/iam/docs
/understanding-service-accounts for additional details.
解決方法:如「存取權控管」一文所述,將角色指派給您的帳戶和環境的服務帳戶。
在 Cloud Composer 2 中,請確認 Cloud Composer 服務代理人服務帳戶 (
service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com
) 已獲派 Cloud Composer v2 API 服務代理人擴充角色。確認 Google API 服務代理人 (
PROJECT_NUMBER@cloudservices.gserviceaccount.com
) 已獲派編輯者角色。在共用虛擬私有雲設定中,請按照設定共用虛擬私有雲的操作說明操作。
環境的服務帳戶權限不足
建立 Cloud Composer 環境時,您會指定服務帳戶,用來執行環境的 GKE 叢集節點。如果這個服務帳戶沒有足夠的權限執行要求作業,Cloud Composer 會輸出下列錯誤:
Errors in: [Web server]; Error messages:
Creation of airflow web server version failed. This may be an intermittent
issue of the App Engine service. You may retry the operation later.
{"ResourceType":"appengine.v1.version","ResourceErrorCode":"504","ResourceError
Message":"Your deployment has failed to become healthy in the allotted time
and therefore was rolled back. If you believe this was an error, try adjusting
the 'app_start_timeout_sec' setting in the 'readiness_check' section."}
解決方法:如「存取權控管」一文所述,將角色指派給您的帳戶和環境的服務帳戶。
服務帳戶缺少 IAM 角色時的警告
如果環境建立失敗,Cloud Composer 會在發生錯誤後產生下列警告訊息:The issue may be caused by missing IAM roles in the following Service Accounts
...
。
這則警告訊息會指出錯誤的可能原因。 Cloud Composer 會檢查專案中服務帳戶的必要角色,如果缺少這些角色,就會產生這則警告訊息。
解決方法:檢查警告訊息中提及的服務帳戶是否具備必要角色。如要進一步瞭解 Cloud Composer 中的角色和權限,請參閱「存取權控管」。
在某些情況下,您可以忽略這則警告。Cloud Composer 不會檢查指派給角色的個別權限。舉例來說,如果您使用自訂 IAM 角色,警告訊息中提及的服務帳戶可能已具備所有必要權限。在這種情況下,您可以忽略這則警告。
不相容的機構政策
您必須適當設定下列政策,才能順利建立 Cloud Composer 環境。
機構政策 | Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1 |
---|---|---|---|
compute.disableSerialPortLogging |
可輸入任何值 | 必須停用 | 1.13.0 以下版本會停用這項功能,否則可使用任何值 |
compute.requireOsLogin |
可輸入任何值 | 可輸入任何值 | 必須停用 |
compute.vmCanIpForward |
可輸入任何值 | 可輸入任何值 | 如果未設定虛擬私有雲原生模式 (使用別名 IP),則必須允許 (Cloud Composer 擁有的 GKE 叢集需要此設定) |
compute.vmExternalIpAccess |
可輸入任何值 | 必須允許公開 IP 環境 | 必須允許公開 IP 環境 |
compute.restrictVpcPeering |
可強制執行 | 無法強制執行 | 無法強制執行 |
compute.disablePrivateServiceConnectCreationForConsumers |
可輸入任何值 | 無法禁止私人和公開 IP 環境的 SERVICE_PRODUCERS。 不會影響現有環境,啟用這項政策後,現有環境仍可運作。 | 無法禁止私人 IP 環境的 SERVICE_PRODUCERS。 不會影響現有環境,啟用這項政策後,現有環境仍可運作。 |
compute.restrictPrivateServiceConnectProducer |
啟用後,將 google.com 機構加入允許清單 |
啟用後,將 google.com 機構加入允許清單 |
可輸入任何值 |
不相容的主體存取邊界政策
您在機構中設定的主體存取邊界政策,可能會封鎖部分環境作業或禁止建立新環境。
如果發生這種情況,錯誤訊息中可能會顯示下列內容:
Operations on resource are denied due to an IAM Principal Access Boundary Policy.
環境的元件位於用戶端和客戶專案中。租戶專案由 Google 管理,不屬於環境所在的機構。環境的服務帳戶必須具備在租戶專案中執行作業的權限。
解決方法:
- 在政策的繫結中新增條件運算式,將環境的服務帳戶排除在政策之外。如要瞭解如何排除主體,讓政策不適用於該主體,請參閱 Identity and Access Management 說明文件中的「主體存取邊界政策的條件式政策繫結」。
限制機構或專案內使用的服務
機構或專案管理員可以使用gcp.restrictServiceUsage
組織政策限制,限制專案中可使用的 Google 服務。
使用這項機構政策時,請務必允許 Cloud Composer 需要的所有服務。