排查环境创建问题

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

本页面针对创建 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 Agent 服务账号 (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com) 已分配 Cloud Composer v2 API Service Agent Extension 角色。

  • 确保已向 Google API 服务代理 (PROJECT_NUMBER@cloudservices.gserviceaccount.com) 分配了 Editor 角色。

  • 在共享 VPC 配置中,按照 配置共享 VPC 说明

环境的服务账号权限不足

创建 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 允许任何值 无法禁止将 SERVICE_PRODUCERS 用于专用和公共 IP 环境。 不会影响现有环境,它们可以在启用此政策后正常运行。 无法禁止为专用 IP 环境使用 SERVICE_PRODUCERS。 不会影响现有环境,即使启用此政策,现有环境也能正常运行。
compute.restrictPrivateServiceConnectProducer 启用后,将 google.com 组织列入许可名单 启用后,将 google.com 组织列入许可名单 允许任何值

如需了解详情,请参阅已知问题页面以及组织政策限制条件

限制组织或项目中使用的服务

组织或项目管理员可以使用 gcp.restrictServiceUsage 组织政策限制条件来限制其项目中可以使用的 Google 服务。

使用此组织政策时,请务必 允许 Cloud Composer 所需的全部服务

后续步骤