Cloud Composer 1 | Cloud Composer 2
本页面针对更新或升级 Cloud Composer 环境时可能遇到的问题提供了问题排查信息。
如需了解与创建环境相关的问题排查信息,请参阅排查环境创建问题。
在更新 Cloud Composer 环境时,导致大多数问题的原因如下:
- 服务账号权限问题
- PyPI 依赖项问题
- Airflow 数据库的大小
权限不足,无法更新或升级环境
如果 Cloud Composer 由于权限不足而无法更新或升级环境,则会输出以下错误消息:
ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission
解决方案:按照访问权限控制中所述,为您的帐号和环境的服务帐号分配角色。
环境的服务账号权限不足
创建 Cloud Composer 环境时,您需要指定一个服务帐号来运行该环境的 GKE 集群节点。如果此服务帐号没有足够的权限来执行请求的操作,则 Cloud Composer 会输出一条错误:
UPDATE operation on this environment failed 3 minutes ago with the
following error message:
Composer Backend timed out. Currently running tasks are [stage:
CP_COMPOSER_AGENT_RUNNING
description: "No agent response published."
response_timestamp {
seconds: 1618203503
nanos: 291000000
}
].
解决方案:按照访问权限控制中所述,为您的帐号和环境的服务帐号分配角色。
Airflow 数据库太大,无法执行此操作
由于 Airflow 数据库过大,升级操作无法成功执行,Cloud Composer 升级操作可能会失败。
如果 Airflow 数据库的大小超过 16 GB,Cloud Composer 会输出以下错误:
Airflow database uses more than 16 GB. Please clean the database before upgrading.
解决方案:执行 Airflow 数据库清理,如 Airflow 数据库维护中所述。
由于 PyPI 软件包冲突,升级到新的 Cloud Composer 版本失败
在升级包含已安装的自定义 PyPI 软件包的环境时,您可能会遇到与 PyPI 软件包冲突相关的错误。之所以会发生这种情况,是因为新的 Cloud Composer 映像包含较新版本的预安装软件包,导致它们与您环境中安装的 PyPI 软件包发生依赖项冲突。
解决方案:
- 如需详细了解软件包冲突,请运行升级检查。
- 放宽已安装的自定义 PyPI 软件包的版本限制条件。例如,不要将版本指定为
==1.0.1
,而是将其指定为>=1.0.1
。 - 如需详细了解如何更改版本要求以解决存在冲突的依赖项,请参阅 pip 文档。
不与 DNS 连接可能会导致在执行升级或更新时出现问题
此类连接问题可能会导致出现如下日志条目:
WARNING - Compute Engine Metadata server unavailable attempt 1 of 5. Reason: [Errno -3] Temporary failure in name resolution Error
这通常意味着没有通向 DNS 的路由,因此请确保 metadata.google.internal DNS 名称可以从集群、Pod 和服务网络中解析为 IP 地址。检查您是否在创建环境的 VPC(在宿主项目或服务项目中)内启用了专用 Google 访问通道。
更多信息: