【问题标题】:Kubernetes - Set Pod replication criteria based on memory and cpu usageKubernetes - 根据内存和 CPU 使用情况设置 Pod 复制标准
【发布时间】:2021-01-05 02:21:09
【问题描述】:

我是 Kubernetes 世界的新手。如有不对之处请见谅。

我了解 pod 复制是由 k8s 自己处理的。我们还可以设置 pod 的 cpu 和内存使用情况。但是是否可以根据内存和 cpu 使用情况更改复制标准?例如,如果我想要一个 pod 在其内存/cpu 使用率达到 70% 时进行复制。

我们可以使用 Prometheus 等收集的指标吗?

【问题讨论】:

    标签: kubernetes microservices devops kubernetes-pod


    【解决方案1】:

    您可以使用horizontal pod autoscaler。来自文档

    Horizo​​ntal Pod Autoscaler 自动缩放 Pod 的数量 在复制控制器、部署、副本集或有状态集中 基于观察到的 CPU 利用率(或者,使用自定义指标支持,在 一些其他应用程序提供的指标)。请注意,水平吊舱 自动缩放不适用于无法缩放的对象,因为 例如,DaemonSets。

    Horizo​​ntal Pod Autoscaler 作为 Kubernetes API 实现 资源和控制器。资源决定行为 控制器。控制器周期性调整副本数 在复制控制器或部署中以匹配观察到的 用户指定目标的平均 CPU 利用率

    来自doc的示例

    以下命令将创建一个 Horizo​​ntal Pod Autoscaler,用于维护 1 到 10 个 Pod 副本。 HPA 将增加和减少副本的数量,以保持所有 Pod 的平均 CPU 利用率为 50%。

    kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
    

    【讨论】:

    • 谢谢阿吉亚。这正是我一直在寻找的。现在我需要检查并实施是否可以使用自定义指标或 prometheus 的指标自动扩展我的 pod。
    • @shujaat 但请确保您已部署度量服务器,否则 HPA 将无法工作。
    猜你喜欢
    • 2020-06-25
    • 2019-08-04
    • 2019-06-29
    • 2021-06-29
    • 2021-07-02
    • 2022-01-15
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    相关资源
    最近更新 更多