【问题标题】:Deploy to a node-pool with a minimum node size of 0?部署到最小节点大小为 0 的节点池?
【发布时间】:2019-08-15 23:22:09
【问题描述】:

我有一个节点池,其最小池大小为 0,最大池大小为 3。通常,此节点池上没有发生任何事情,因此 GKE 正确地缩小到零。但是,如果我尝试通过 kubectl 向此池提交作业,则 pod 会因 Unschedulable 而失败。

我可以运行 kubectl--enable-autoscaling --min-nodes 1 --max-nodes 3 等待 10 秒,然后部署,然后等待完成,然后将最小节点更改回 0,但这似乎并不理想。

有没有更好的方法让池在 Pod 挂起时启动节点?

【问题讨论】:

  • 为什么要将集群扩展到 0?是为了测试吗?
  • 省钱。我用它来运行批处理作业,否则它经常处于空闲状态

标签: google-cloud-platform google-kubernetes-engine


【解决方案1】:

即使使用 taints 或 nodeAffinity 之类的东西,我认为您也不能告诉 Kubernetes 启动节点来安排工作负载。调度程序要求节点已经可用。

(出于好奇,您是如何通过kubectl 将作业调度到特定节点池的?)

【讨论】:

  • 在 yaml 文件中使用节点选择器,并使用 kubectl apply -f.
【解决方案2】:

由于自动扩缩器基于 Pod 资源请求进行扩缩容,因此您需要至少 1 个值供自动扩缩器用作基本计算,以了解池是否需要额外的节点。

这里是有关集群自动扩缩器工作原理的更多信息[1]

【讨论】:

    猜你喜欢
    • 2015-03-17
    • 2022-11-21
    • 2020-09-24
    • 2021-02-18
    • 1970-01-01
    • 2019-11-06
    • 2019-12-15
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多