是否有任何工具可以根据 kubernetes 中请求的总数 pods 自动缩放 GKE 节点?

Is there any tool for GKE nodes autoscaling base on total pods requested in kubernetes?

当我使用 kubectl 调整复制控制器的大小时,如果集群没有足够的资源,将有一个或多个 pods 始终处于待处理状态。

是否有任何工具可以在资源运行用完时自动调整 GKE 集群的大小?

您可以为您的 GKE 节点所属的 Instance Group 启用 autoscaling

我有一个类似的要求(对于 Go 构建系统):​​想知道什么时候安排与可用 CPU 或内存 > 1,并在为真时扩展节点(或者更准确地说, 当它是 ~.8).没有内置指标,但正如您所建议的,您可以使用自定义指标来实现。

这一切都是用 Go 完成的,但它会给你基本的想法:

  1. Create the metrics (memory and CPU, in my case
  2. Put values to the metrics

IMO 的关键要点是您必须遍历集群中的每个 pod 以确定消耗了多少容量,然后遍历每个 node 在集群中确定有多少容量可用。然后只需将您的自动缩放器指向自定义指标即可。

值得注意的一件大事:我最终确定,扩展内置 CPU 利用率指标与自定义指标。我们安排的每个 pod 都与 CPU 挂钩,因此当 pods 达到最大值时,CPU 也达到最大值。内置 CPU 利用率指标可能更好,因为您没有定期放置自定义指标带来的延迟。