我有一个GCP Composer实例运行3个节点(这是最小可能的)。这个实例的节点有4GB内存。然而,我有一个需要8GB内存的工作。是否有可能调整单个节点的内存?我不想把整个Composer实例升级到8GB,因为那会大大增加成本。
虽然不建议这样做,但您可以通过删除并重新创建dedefault-pool
来升级Cloud Composer集群使用的机器类型。
有一个官方的文档说明如何做到这一点。
它可能不会显示在Composer UI或CLI返回的Composer设置中。
此外,您可以按照parakeet的评论中建议的那样使用KubernetesPodOperator
或GKEPodOperator
,以便正确地确定用于实例化pod的节点池的尺寸。
Google Cloud composer运行在几个组件上。工人通常是Kubernetes集群中的节点。AFAIK,你可以设置CLoud Composer只有一个节点池,所以,所有的工人有相同的配置。
在理想情况下,您可以使用不同类型的VM定义不同的工作节点池,包括可抢占的VM。现在还不是这样。
不幸的是,无法只更改节点池中的一个节点。我也不想更新默认节点池,因为那样的话,我将从3台4GB的机器切换到3台8GB的机器,成本将翻倍。此外,GCP Composer创建的默认池的最小节点数为3,因此,也没有办法通过减少节点数来降低成本。
我最终创建了一个新的节点池,它有一个8GB的机器,0个节点,并启用自动伸缩(最小节点:0,最大节点:1)。现在,如果我有一个作业需要超过4GB的内存,我可以简单地运行它,GCP会自动分配8GB的机器,然后自动删除它。
我认为这是最好的解决方案,因为新机器并不总是在使用,它只是一台机器。