Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁面提供疑難排解資訊,協助您解決建立 Cloud Composer 環境時可能遇到的問題。
如要瞭解如何解決更新及升級環境相關問題,請參閱「解決環境更新與升級問題」。
建立 Cloud Composer 環境時,大部分的問題都是因為以下原因造成:
服務帳戶權限問題。
防火牆、DNS 或路由資訊不正確。
網路相關問題。例如無效的 VPC 設定、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 |
可輸入任何值 | 可輸入任何值 | 未設定 VPC 原生模式 (使用別名 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 所需的所有服務。