Cloud Composer 的已知问题

此页面列出了 Cloud Composer 的已知问题。这些问题的部分修复正在进行中,我们将在将来的版本中提供。某些问题会影响旧版本,可以通过升级环境来解决。

Pod 和服务部分支持非 RFC 1918 地址范围

Cloud Composer 依赖 GKE 为 Pod 和服务提供对非 RFC 1918 地址的支持。目前,Cloud Composer 仅支持以下非 RFC 1918 范围列表:

  • 100.64.0.0/10
  • 192.0.0.0/24
  • 192.0.2.0/24
  • 192.88.99.0/24
  • 198.18.0.0/15
  • 198.51.100.0/24
  • 203.0.113.0/24
  • 240.0.0.0/4

在 Composer 1.10.2 和 Composer 1.10.3 中启用 DAG 序列化时,Airflow 界面不显示任务日志

在使用 Composer 版本 1.10.2 和 1.10.3 的环境中启用 DAG 序列化时,可防止日志显示在 Airflow 网络服务器上。要解决此问题,请升级到版本 1.10.4(或更高版本)。

不支持 GKE Workload Identity

您无法为 Cloud Composer GKE 集群开启 Workload Identity。因此,您可能会在 Security Command Center 看到 WORKLOAD_IDENTITY_DISABLED 发现结果。

不支持 GKE Pod 安全政策

您无法为 Cloud Composer GKE 集群开启 GKE Pod 安全政策。因此,您可能会在 Security Command Center 看到 POD_SECURITY_POLICY_DISABLED 发现结果。

在更新期间添加的环境标签未完全传播到 Cloud Composer 依赖项

更新后的标签不适用于 Cloud Storage 存储分区、Pub/Sub 主题和 Compute Engine 虚拟机。解决方法是手动将这些标签应用于上述资源。

发生 CVE-2020-14386 问题时的 GKE 升级

我们正致力于解决所有 Cloud Composer 环境的漏洞。作为修复的一部分,所有现有 Cloud Composer 的 GKE 集群都将更新为更新版本。

如果客户决定立即解决该漏洞,则可以按照这些说明升级 Composer GKE 集群,同时注意以下几点:

步骤 1。 如果您运行的 Cloud Composer 版本低于 1.7.2,请升级到更高版本的 Cloud Composer。如果您已使用 1.7.2 或更高版本,请转到下一个点。

第 2 步:将 GKE 集群(主服务器和节点)升级到包含此漏洞修复的最新 1.15 补丁程序版本。

从 Airflow 1.9.0 升级到 Airflow 1.10.x 之后,Airflow 任务日志将在 Airflow 网络服务器中不可用

Airflow 1.10.x 针对日志文件的命名惯例引入了不向后兼容的更改。Airflow 任务的日志名称中添加了区域信息。

Airflow 1.9.0 会存储日志名称,并要求采用以下格式: BUCKET/logs/DAG/2020-03-30T10:29:06/1.log Airflow 1.10.x 会存储日志名称,并要求采用以下格式: BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

因此,如果您从 Airflow 1.9.0 升级到 Airflow 1.10.x,并且想要读取使用 Airflow 1.9.0 执行的任务的日志,则 Airflow 网络服务器将显示以下错误消息: Unable to read remote log from BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

解决方法:使用以下格式,重命名 Cloud Storage 存储分区中由 Airflow 1.9.0 生成的日志:BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

无法创建执行组织政策 constraints/compute.disableSerialPortLogging 的 Cloud Composer 环境

如果对目标项目强制执行 constraints/compute.disableSerialPortLogging,Cloud Composer 环境创建将失败。

诊断

要确定您是否受到此问题影响,请按以下步骤操作:

转至 Cloud Console 中的 GKE 菜单。访问 GKE 菜单

然后,选择新创建的集群。检查是否存在以下错误:

Not all instances running in IGM after 123.45s.
Expect <number of desired instances in IGM>. Current errors:

Constraint constraints/compute.disableSerialPortLogging violated for
project <target project number>.

解决方法

  1. 在将创建 Cloud Composer 环境的项目中停用组织政策。

    即使父资源(组织或文件夹)启用了组织政策,您也始终可以在项目级层停用组织政策。如需了解详情,请参阅为布尔值限制条件自定义政策页面

  2. 使用排除过滤器

    使用串行端口日志的排除过滤器可以实现与停用组织政策同样的目标,因为 Logging 中将会有串行控制台日志。如需了解详情,请参阅排除过滤器页面。

使用 Deployment Manager 管理受 VPC Service Controls 保护的 GCP 资源

Composer 使用 Deployment Manager 创建 Cloud Composer 环境的组件。

2020 年 12 月,您可能收到相关信息,告知您可能需要执行其他 VPC Service Controls 配置,以便能够使用 Deployment Manager 来管理受 VPC Service Controls 保护的资源。

我们想要说明如果您使用的是 Composer,并且直接使用 Deployment Manager 来管理 Deployment Manager 通告中所述的 GCP 资源,则您无需执行任何操作

在环境的 GKE 集群被删除后无法删除环境

如果您在删除环境之前删除环境的集群,则尝试删除环境会导致以下错误:

 Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]

如需删除其 GKE 集群已被删除的环境,请执行以下操作:

  1. 打开 Google Cloud Console 中的 Deployment Manager 页面。

    打开 Deployment Manager 页面

  2. 查找所有带有以下标签的部署:

    • goog-composer-environment:<environment-name>
    • goog-composer-location:<environment-location>

    您应该会看到两个部署带有所述标签:

    • 名为 <environment-location>-<environment-name-prefix>-<hash>-sd 的部署
    • 名为 addons-<uuid> 的部署
  3. 手动删除仍在这两个部署中列出和存在于项目中的资源(例如,Pub/Sub 主题和订阅)。为此,请执行以下操作:

    1. 选择部署。

    2. 点击删除

    3. 选择删除这 2 个部署及其创建的虚拟机、负载平衡器和磁盘等所有资源选项,然后点击全部删除

    删除操作失败,但剩余资源将被删除。

  4. 使用以下任一选项删除部署:

    • 在 Google Cloud Console 中,再次选择两个部署。点击删除,然后选择删除这 2 个部署,但保留其创建的资源选项。

    • 运行 gcloud 命令以删除具有 ABANDON 政策的部署:

      gcloud deployment-manager deployments delete addons-<uuid> \
          --delete-policy=ABANDON
      
      gcloud deployment-manager deployments delete <location>-<env-name-prefix>-<hash>-sd \
          --delete-policy=ABANDON
      
  5. 删除 Cloud Composer 环境

Deployment Manager 显示有关不受支持的功能的信息

您可能会在 Deployment Manager 标签页中看到以下警告:

The deployment uses actions, which are an unsupported feature. We recommend
that you avoid using actions.

对于 Cloud Composer 拥有的 Deployment Manager 部署,您可以忽略此警告。

属于“echo-airflow_monitoring”DAG 的“echo”任务条目的警告

您可能会在 Airflow 日志中看到以下条目:

in _query db.query(q) File "/opt/python3.6/lib/python3.6/site-packages/MySQLdb/
connections.py", line 280, in query _mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry
'echo-airflow_monitoring-2020-10-20 15:59:40.000000' for key 'PRIMARY'")

您可以忽略这些日志条目,因为此错误不会影响 Airflow DAG 和任务处理。

我们正在努力改进 Cloud Composer 服务,以从 Airflow 日志中移除这些警告。

启用 compute.requireOsLogin 政策后,Cloud Composer 环境创建失败

如果您的项目中的 compute.requireOsLogin 政策设为 true,则 Cloud Composer 环境创建操作将失败。

如需创建 Cloud Composer 环境,请在项目中停用此政策。

如需详细了解此组织政策,请参阅组织政策限制条件

停用 compute.vmExternalIpAccesscompute.vmCanIpForward 政策后,Cloud Composer 环境创建失败

Cloud Composer 拥有的 GKE 集群要求为其虚拟机启用这两项政策。

如需详细了解此组织政策,请参阅组织政策限制条件