将Google Cloud Composer集群缩小到零节点?

问题描述 投票:0回答:3

我有一个Cloud Composer集群,每天运行大约十二个工作日。它们都在深夜的5小时内运行。最大的DAG需要大约3个小时才能完成在5个节点上的运行,并且大部分工作都是高度可并行化的(也就是说,如果我们将其扩展到15个节点,它会更快地完成)。为了既能降低成本(或可能降低成本)又能提高吞吐量,最好在大型DAG运行时扩大群集,然后再将其缩减约20个小时,这是很好的选择在集群中什么都没有发生的那一天。使用UI,它只允许我将群集缩小到3个节点。

我的问题:是否有办法在一天的一部分时间内完全“关闭” Cloud Composer集群?如果有的话,我至少可以将它带到一个节点上吗?理想情况下,这将是自动化的任务。

etl airflow google-cloud-composer
3个回答
2
投票

Traveloka团队解决了相同的问题,并撰写了有关该过程的详细文章。但是在空闲情况下,它们正在运行1个节点而不是零。

https://medium.com/traveloka-engineering/enabling-autoscaling-in-google-cloud-composer-ac84d3ddd60


1
投票

您可以在节点级别启用Autoscaling

Workloads > your composer cluster name > enable Autoscaling
PROJECT=[provide your gcp project id]
COMPOSER_NAME=[provide your composer environment name]
COMPOSER_LOCATION=[provide the selected composer’s location e.g. us-central]
CLUSTER_ZONE=[provide the selected composer’s zone e.g. us-central1-a]
GKE_CLUSTER=$(gcloud composer environments describe \
${COMPOSER_NAME} \
--location ${COMPOSER_LOCATION} \
--format="value(config.gkeCluster)" \
--project ${PROJECT} | \
grep -o '[^\/]*$')
gcloud container clusters update ${GKE_CLUSTER} --enable-autoscaling \
--min-nodes 1 \
--max-nodes 10 \
--zone ${CLUSTER_ZONE} \
--node-pool=default-pool \
--project ${PROJECT}

对于工作人员,我们将把Kubernetes的水平荚自动缩放器(HPA)应用于Composer中的气流工作人员部署。


0
投票

云作曲家也有成本,您无能为力

  • frontend(appengine flex)
  • 数据库

这些成本是小型作曲家集群的重要组成部分。

如果要缩小到0,建议在VM上而不是在托管作曲家环境中运行气流。气流完成运行后,您可以关闭虚拟机以降低成本。

GKE(运行作曲器),无法缩小到0个节点,因为它还运行一些需要cpu和ram才能运行的kubernetes服务。

除此之外,您还应该查看SANN3发布的链接,因为该帖子提供了一些有关如何实现自动缩放的详细见解。

© www.soinside.com 2019 - 2024. All rights reserved.