管理容器的资源。
当你指定一个 Pod 时,你可以选择指定一个容器需要多少每个资源。最常见的指定资源是 CPU 和内存 (RAM);还有其他人。
Kubernetes 为 Pod 定义了一个特殊的 CPU 和内存分配指标。虽然内存看起来很简单,但 CPU 有点难以理解。这就像把一个整体拆成碎片。
是否有任何最佳实践来估计/计算 Pod 的那些 kubernetes 资源?
管理容器的资源。
当你指定一个 Pod 时,你可以选择指定一个容器需要多少每个资源。最常见的指定资源是 CPU 和内存 (RAM);还有其他人。
Kubernetes 为 Pod 定义了一个特殊的 CPU 和内存分配指标。虽然内存看起来很简单,但 CPU 有点难以理解。这就像把一个整体拆成碎片。
是否有任何最佳实践来估计/计算 Pod 的那些 kubernetes 资源?
Pod 的请求和限制取决于应用程序使用的内存和 CPU 资源量。这些值可能会因应用程序的使用方式而异。
基于此,决定需要为应用程序设置哪些请求和限制的最佳方法是在运行时观察其行为。
性能测试可以帮助接收适当的数据。要存储您的指标,您需要有一个指标服务器和一个数据库。收集必要的数据后,可以取内存和CPU的最大值、最小值、平均值。
另一种可能的解决方案是使用Vertical Pod Autoscaler (VPA):
使用户不必为 Pod 中的容器设置最新的资源限制和请求。配置后,它将根据使用情况自动设置请求,从而允许在节点上进行适当的调度,以便为每个 pod 提供适当的资源量。它还将维护初始容器配置中指定的限制和请求之间的比率。
或者,如果您更喜欢带有图形界面的工具,您可以使用Goldilocks:
通过在推荐模式下使用 kubernetes vertical-pod-autoscaler,我们可以看到对我们每个应用程序的资源请求的建议。此工具为命名空间中的每个工作负载创建一个 VPA,然后查询它们以获取信息。
一旦您的 VPA 就位,您将看到建议出现在 Goldilocks 仪表板中。
不同的方法:
查看当前使用情况:kubectl top pod
部署 Kubernetes 仪表板以查看短期数据
部署 Prometheus 以查看趋势使用情况
您可以使用 prometheus 和 grafana 来监控和估计 Pod 的资源。