我有一个Cloud Composer集群,每天运行大约12个day。他们都在半夜跑了5个小时。最大的DAG在5个节点上运行需要大约3个小时,并且大部分工作是高度可并行化的(也就是说,如果我们将其扩展到15个节点,它会更快地完成)。为了既保持低成本(或可能降低成本),又提高吞吐量,如果我可以在大型DAG运行时扩展集群,然后在集群中没有发生任何事情的一天中将其缩减到剩余的近20个小时,那就太好了。使用UI,它只允许我将集群缩减到3个节点。
我的问题是:有没有办法在一天中完全“关闭”Cloud Composer集群?如果有什么不同的话,我至少可以把它自己带到一个节点上吗?理想情况下,这将是一个自动化的任务。
发布于 2020-04-24 00:19:31
traveloka团队解决了同样的问题,并撰写了一篇关于该过程的详细文章。但在空闲情况下,它们运行的是1个节点,而不是零个节点。
https://medium.com/traveloka-engineering/enabling-autoscaling-in-google-cloud-composer-ac84d3ddd60
发布于 2020-04-20 19:16:04
您可以在节点级别启用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}
对于worker级别,我们将Kubernetes的Horizontal Autoscaler (HPA)应用于Composer中的airflow-worker部署。
发布于 2020-04-29 18:01:35
Cloud composer也有您无法使用的成本
这些成本是一个小型作曲家集群的重要组成部分。
如果您想缩减到0,我建议在VM上运行airflow,而不是在托管composer环境中运行。在airflow完成其运行后,您可以关闭VM以降低成本。
GKE (运行composer)无法缩减到0个节点,因为它还运行一些需要cpu和ram才能运行的kubernetes服务。
除此之外,你应该查看SANN3发布的链接,因为该文章提供了一些关于如何实现自动缩放的详细见解。
https://stackoverflow.com/questions/61281427
复制相似问题