【问题标题】:Google Cloud Kubernetes cost when rescaled to 0 nodes重新调整为 0 个节点时的 Google Cloud Kubernetes 成本
【发布时间】:2023-03-03 09:37:02
【问题描述】:

我有一个批处理作业,我想在 Google Cloud 上的 Kubernetes 集群上运行。该作业必须定期运行,例如每周一次,需要一天才能完成。来自文档:

从 Kubernetes 1.7 版开始,您可以为节点池指定最小大小为零。如果其中的实例不需要运行您的工作负载,这允许您的节点池完全缩减。但是,虽然节点池可以扩展到零大小,但整个集群大小不会缩小到零节点(因为运行系统 Pod 始终需要至少一个节点)。

我的问题是,如果将集群缩减到 0 个节点,它还会产生成本吗?据我了解,集群大小不会为空,因此仍会产生成本。

如果是这种情况,将我的成本降到最低的正确方法是什么?我应该在运行作业之前/之后定期创建/删除集群吗?

【问题讨论】:

    标签: kubernetes google-cloud-platform


    【解决方案1】:

    如果你动态配置 Kubernetes 集群,只要你可以从头开始重建集群环境而不依赖于工作节点,Autoscaling 降为零节点将是一个很好的解决方案,而 Kubernetes 主节点(系统 Pod)是根据Price page,在GKE不收费。

    你可以创建node-pools:

    gcloud container node-pools create ${CLUSTER_NAME}-pool \
        --cluster ${CLUSTER_NAME} \
        --enable-autoscaling --min-nodes 0 --max-nodes 10 \
        --zone ${INSTANCE_ZONE}
    

    然后按需强制缩减:

    gcloud container clusters resize ${CLUSTER_NAME} --size=0 [--node-pool=${CLUSTER_NAME}-pool]
    

    还要熟悉这个Document,它描述了可以阻止Cluster Autoscaler 删除Node.js 的Pod 类型。

    【讨论】:

    • 最终目标不是必须手动强制缩放,而是让它动态发生,但我想你明白这一点。我不确定你为什么提到强制缩放的命令,是为了完整吗?我们是否同意使用您第一次给出的命令构建的集群会自动扩展而无需第二个命令?
    • 是的,第一个命令在您的集群上启用自动扩展,但是第二个命令只是作为按需缩减选项的示例。
    猜你喜欢
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多