我有一个Cloud Composer集群,每天运行大约十二个工作日。它们都在深夜的5小时内运行。最大的DAG需要大约3个小时才能完成在5个节点上的运行,并且大部分工作都是高度可并行化的(也就是说,如果我们将其扩展到15个节点,它会更快地完成)。为了既能降低成本(或可能降低成本)又能提高吞吐量,最好在大型DAG运行时扩大群集,然后再将其缩减约20个小时,这是很好的选择在集群中什么都没有发生的那一天。使用UI,它只允许我将群集缩小到3个节点。
我的问题:是否有办法在一天的一部分时间内完全“关闭” Cloud Composer集群?如果有的话,我至少可以将它带到一个节点上吗?理想情况下,这将是自动化的任务。
Traveloka团队解决了相同的问题,并撰写了有关该过程的详细文章。但是在空闲情况下,它们正在运行1个节点而不是零。
https://medium.com/traveloka-engineering/enabling-autoscaling-in-google-cloud-composer-ac84d3ddd60
您可以在节点级别启用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,建议在VM上而不是在托管作曲家环境中运行气流。气流完成运行后,您可以关闭虚拟机以降低成本。
GKE(运行作曲器),无法缩小到0个节点,因为它还运行一些需要cpu和ram才能运行的kubernetes服务。
除此之外,您还应该查看SANN3发布的链接,因为该帖子提供了一些有关如何实现自动缩放的详细见解。