如何经济高效地配置 Google Cloud Composer

dka*_*tan 6 airflow google-cloud-composer

经过一些研究和测试,我们决定开始使用 Google Cloud Composer。由于我们当前的 DAG 和任务相对较小,并且不需要服务器连续运行,因此我正在寻找如何管理成本。

两个问题:

  1. 使用preemptible虚拟机的选项似乎合乎逻辑。这大大节省了成本,我正在考虑选择 3x n1-standard-4。我希望每个任务都很短,所以不要认为这会对我们的工作负载产生重大影响。是否可以将preemptibleVM 与 Composer一起使用?
  2. 计划打开/关闭 Composer 环境,如本文所述。我在文档中找不到如何做到这一点,要么通过关闭整个环境,要么按照答案中的建议关闭工作人员。

帮助,有人吗?

Jam*_*mes 8

这是个有趣的问题。

您可能会遇到的一个障碍是 Airflow 本身的性质。通常,Airflow 不打算临时使用。相反,我怀疑绝大多数 Airflow 使用,Cloud Composer 或其他方式,都是持久的。临时性带来了成本优势,但也带来了 Airflow 架构的风险。例如,如果重新启动 Airflow 资源的调度程序失败会发生什么?

回答您的问题:

  1. Composer 不支持抢占式。虽然 PVM 有很多很棒的好处,但它们可能会使任务处于非常奇怪的状态,尤其是当您被多次抢占时。
  2. 此过程没有正式的文档,因为它通常是非正式的,如果您必须依赖于您的环境,则不建议这样做。不过,基本的方法是:
    1. 创建一个非常小的 GCE VM
    2. 设置 Cloud SDK ( gcloud) 以连接到您的项目
    3. 创建一个 crontab,在您需要时重新创建/删除环境/或/暂停 Composer 工作池中的虚拟机

从长远来看,我认为 Composer 将更好地支持工人资源的短暂使用。在短期内,另一种选择是在小型(ish)GCE VM 上运行轻量级 Airflow 环境,然后在需要使用 Airflow 时暂停/恢复该 VM。您不会通过这种方式获得 Composer,但您确实受益于团队在核心 Airflow 中改进和扩展 GCP 支持的工作。