【问题标题】:How to configure Kubernetes cluster autoscaler to scale down only?如何将 Kubernetes 集群自动扩缩器配置为仅缩减?
【发布时间】:2020-03-12 12:58:02
【问题描述】:

我想运行 kubernetes 集群自动缩放器,以便自动删除不需要的节点,但我不希望自动缩放器自动添加节点。我更喜欢自己扩大规模。这可能吗?

我找到了 maxNodesTotal,但我担心将其设置为 0 的语义可能意味着我的所有节点都会消失。我还找到了 scaleDownEnabled,但没有相应的放大选项。

【问题讨论】:

    标签: kubernetes autoscaling amazon-eks


    【解决方案1】:

    Kubernetes Cluster Autoscaler 或 CA 将尝试扩展,只要它识别到等待调度运行的挂起 pod,但请求的资源(CPU/RAM)超过任何可用节点可以提供的资源。

    您可以使用参数 maxNodeTotal 来限制 CA 允许启动的最大节点数。

    例如,如果您不希望集群在高峰使用期间包含超过 3 个节点,则可以将 maxNodeTotal 设置为 3。

    在成本节约、性能和可用性方面,您应该注意不同的注意事项。

    我会尝试列出一些与成本节约和高效利用相关的内容,因为我怀疑您可能对这方面更感兴趣。 确保您的 pod 大小与其实际使用情况一致,因为扩展会由 Pod 资源请求而不是实际 Pod 资源利用率触发。 此外,更大的 Pod 不太可能在同一个节点上组合在一起,此外 CA 将无法缩减任何半利用率的节点,从而导致资源消耗。

    【讨论】:

      【解决方案2】:

      由于您使用 EKS 标记了这个问题,我假设您在 AWS 上。在 AWS 上,每个 NodeGroup 的 ASG(Auto Scaling Group)都有一个集群自动扩缩器支持的 Max 设置。您可以设置此项以防止超出设置的节点数。如果 ASG 上的 Min 和 Max 是相同的值,那么自动缩放器将永远不会按比例放大或缩小。如果 Min 和 Max 不同,则自动缩放器可以在这些节点数之间向上和向下扩展。这并不完全是“从不扩大规模”,但它限制了上限。

      如果您有多个 NodeGroup (ASG),那么每个节点可以有不同的 Min 和 Max 节点值。

      【讨论】:

        猜你喜欢
        • 2018-08-04
        • 2020-12-24
        • 2021-04-10
        • 1970-01-01
        • 2020-10-23
        • 2021-02-16
        • 2019-08-18
        • 1970-01-01
        • 2019-04-30
        相关资源
        最近更新 更多