排查环境创建问题

Cloud Composer 1 | Cloud Composer 2

本页面针对创建 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) 分配了项目编辑者角色。

  • 在共享 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."}

解决方案:将角色分配给您的帐号和环境的服务帐号,如访问权限控制中所述。

为环境选择的 VPC 网络不存在

您可以在创建 Cloud Composer 环境时指定 VPC 网络和子网。如果您未指定 VPC 网络,则 Cloud Composer 服务会为环境的区域和可用区选择 default VPC 和 default 子网。

如果指定的 VPC 网络和子网不存在,Cloud Composer 将输出以下错误:

Errors in: [GKE cluster]; Error messages:
        {"ResourceType":"gcp-types/container-v1:projects.locations.clusters","R
        esourceErrorCode":"400","ResourceErrorMessage":{"code":400,"message":"P
        roject \"<your composer project>\" has no network named \"non-existing-
        vpc\".","status":"INVALID_ARGUMENT","statusMessage":"Bad
        Request","requestPath":"https://container.googleapis.com/
        v1/projects/<your composer
        project>/locations/<zone>/clusters","httpMethod":"POST"}}

解决方案

  • 在 Cloud Composer 2 中,您可以创建使用 Private Service Connect 而不是 VPC 网络的环境。
  • 在创建环境之前,请确保 VPC 网络和新环境的子网已存在。

网络配置不正确

创建 Cloud Composer 环境需要适当的网络或 DNS 配置。请按照以下说明操作:

如果您在共享 VPC 模式下配置 Cloud Composer 环境,还请按照这些共享 VPC 说明操作。

Cloud Composer 环境为集群节点以及 Pod 和 Service 使用子网。要确保这些 IP 范围之间的双向通信,请执行以下操作:

  • 允许 GKE 节点 IP 地址范围和 GKE 节点 IP 地址范围(所有端口)之间的入站和出站流量。
  • 允许 GKE 节点 IP 范围和 Pod IP 范围和所有端口之间的入站流量和出站流量。
  • 允许 GKE 节点 IP 范围与服务 IP 范围、所有端口之间的入站流量和出站流量。
  • 允许 GKE Pod 与 Service IP 地址范围(所有端口)之间的入站和出站流量。
  • 允许从 GKE 节点 IP 范围到 GKE 控制平面 IP 范围和所有端口的入站流量和出站流量。

您还可以检查 GCP 活动中的特定 GCE NetworkingSubnetwork 配置类别内是否有任何日志条目,以查看在创建环境期间是否报告了任何错误。

在大规模网络中创建环境时遇到配额问题

在大规模网络中创建 Cloud Composer 环境时,您可能会遇到以下配额限制:

  • 已达到每个 VPC 网络的 VPC 对等互连数上限。
  • 已达到主要和次要子网 IP 范围数上限。
  • 已达到对等互连组中用于内部 TCP/UDP 负载平衡的转发规则数上限。

解决方案

不兼容的组织政策

您必须适当配置以下政策,才能成功创建 Cloud Composer 环境。

组织政策 Cloud Composer 1 Cloud Composer 2
compute.disableSerialPortLogging 对于 1.13.0 之前的版本已停用;对于其他版本为任意值 允许任何值
compute.requireOsLogin 必须停用 必须停用
compute.vmCanIpForward 如果未配置 VPC 原生模式(使用别名 IP),则必须允许(该政策对于 Cloud Composer 拥有的 GKE 集群是必需的) 允许任何值
compute.vmExternalIpAccess 对于公共 IP 环境,必须允许 对于公共 IP 环境,必须允许
compute.restrictVpcPeering 无法强制执行 无法强制执行
compute.disablePrivateServiceConnectCreationForConsumers 允许任何值 如果使用了 Private Service Connect,则无法禁止“SERVICE_PRODUCERS”

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

400 错误消息:部署 Airflow 网络服务器失败。

此错误可能是由于 IP 范围重叠而未能创建专用 IP 环境的 GKE 集群而导致的。

解决方案:检查日志中是否存在有关环境集群的任何故障,并根据相应的 GKE 错误消息解决问题。

后续步骤