【问题标题】:How to estimate Kubernetes Resources for a Pod如何估算 Pod 的 Kubernetes 资源
【发布时间】:2021-11-11 08:37:48
【问题描述】:

管理容器资源。

当你指定一个 Pod 时,你可以选择指定一个容器需要多少每个资源。最常见的指定资源是 CPU 和内存 (RAM);还有其他的。

Kubernetes 为 Pod 的 CPU 和内存分配定义了一个特殊的指标。虽然内存看起来很简单,但 CPU 有点难以理解。这就像把整个东西拆成碎片。

是否有任何最佳实践来估计/计算 Pod 的这些 kubernetes 资源?

【问题讨论】:

  • 在部署到 prod 之前在测试中测量并尝试创建类似生产的测试。或者,使用适用于大多数 pod 的默认值并准备好适应。请注意,CPU 请求值可能会对自动缩放产生意想不到的影响,至少在 AKS 上是这样!即使未达到限制,低请求和高限制也会导致创建额外的 Pod。

标签: kubernetes


【解决方案1】:

不同的方式:

  1. 查看当前使用情况:kubectl top pod

  2. 部署 Kubernetes 仪表板以查看短期数据

  3. 部署 Prometheus 以查看趋势使用情况

【讨论】:

    【解决方案2】:

    Pod 的请求和限制取决于应用程序使用的内存和 CPU 资源量。这些值可能因应用程序的使用方式而异。

    基于此,决定需要为应用程序设置哪些请求和限制的最佳方法是观察其在运行时的行为。

    性能测试有助于接收适当的数据。要存储您的指标,您需要有一个指标服务器和一个数据库。 收集必要的数据后,可以取内存和CPU的最大值、最小值、平均值。

    另一种可能的解决方案是使用Vertical Pod Autoscaler (VPA):

    使用户无需设置最新的资源限制 并请求其 pod 中的容器。配置后,它 将根据使用情况自动设置请求,从而允许 在节点上进行适当的调度,以便适当的资源量 可用于每个 pod。它还将保持限制之间的比率 以及在初始容器配置中指定的请求。

    或者如果你更喜欢图形界面的工具,你可以使用Goldilocks:

    通过在推荐中使用 kubernetes vertical-pod-autoscaler 模式下,我们可以看到我们的每个资源请求的建议 应用。该工具为命名空间中的每个工作负载创建一个 VPA,并 然后向他们查询信息。

    一旦您的 VPA 就位,您就会在 Goldilocks 仪表板。

    【讨论】:

      【解决方案3】:

      您可以使用 prometheus 和 grafana 来监控并估算 Pod 的资源。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-06
        • 2019-01-09
        • 2019-08-25
        • 1970-01-01
        • 2021-01-14
        • 2020-10-02
        相关资源
        最近更新 更多