【发布时间】:2020-03-12 12:58:02
【问题描述】:
我想运行 kubernetes 集群自动缩放器,以便自动删除不需要的节点,但我不希望自动缩放器自动添加节点。我更喜欢自己扩大规模。这可能吗?
我找到了 maxNodesTotal,但我担心将其设置为 0 的语义可能意味着我的所有节点都会消失。我还找到了 scaleDownEnabled,但没有相应的放大选项。
【问题讨论】:
标签: kubernetes autoscaling amazon-eks
我想运行 kubernetes 集群自动缩放器,以便自动删除不需要的节点,但我不希望自动缩放器自动添加节点。我更喜欢自己扩大规模。这可能吗?
我找到了 maxNodesTotal,但我担心将其设置为 0 的语义可能意味着我的所有节点都会消失。我还找到了 scaleDownEnabled,但没有相应的放大选项。
【问题讨论】:
标签: kubernetes autoscaling amazon-eks
Kubernetes Cluster Autoscaler 或 CA 将尝试扩展,只要它识别到等待调度运行的挂起 pod,但请求的资源(CPU/RAM)超过任何可用节点可以提供的资源。
您可以使用参数 maxNodeTotal 来限制 CA 允许启动的最大节点数。
例如,如果您不希望集群在高峰使用期间包含超过 3 个节点,则可以将 maxNodeTotal 设置为 3。
在成本节约、性能和可用性方面,您应该注意不同的注意事项。
我会尝试列出一些与成本节约和高效利用相关的内容,因为我怀疑您可能对这方面更感兴趣。 确保您的 pod 大小与其实际使用情况一致,因为扩展会由 Pod 资源请求而不是实际 Pod 资源利用率触发。 此外,更大的 Pod 不太可能在同一个节点上组合在一起,此外 CA 将无法缩减任何半利用率的节点,从而导致资源消耗。
【讨论】:
由于您使用 EKS 标记了这个问题,我假设您在 AWS 上。在 AWS 上,每个 NodeGroup 的 ASG(Auto Scaling Group)都有一个集群自动扩缩器支持的 Max 设置。您可以设置此项以防止超出设置的节点数。如果 ASG 上的 Min 和 Max 是相同的值,那么自动缩放器将永远不会按比例放大或缩小。如果 Min 和 Max 不同,则自动缩放器可以在这些节点数之间向上和向下扩展。这并不完全是“从不扩大规模”,但它限制了上限。
如果您有多个 NodeGroup (ASG),那么每个节点可以有不同的 Min 和 Max 节点值。
【讨论】: