我想在不过度分配或分配不足的情况下优化配置CPU内核。如何测量给定容器所需的CPU毫核心?它还带来了一个问题,即基于CPU消耗,代理会将多少流量发送给任何给定的pod,以便我们最佳地使用计算。
当前,我发送请求并进行监视,
kubectl top pod
是否有任何工具可以随时测量,请求,CPU和内存,并为Pod提供最佳的CPU建议。
答案 0 :(得分:2)
随着时间的推移以及每个Pod的监视,是的,https://kubernetes.io/docs/tasks/debug-application-cluster/resource-usage-monitoring/上有一些建议,其中一种是普罗米修斯-格拉法纳组合-https://grafana.com/dashboards/315
关于请求和限制的自动建议,我认为没有任何内容。请记住,Kubernetes已经尝试平衡给每个Pod所需的东西,而不会花费太多。您设置的限制和要求是为了帮助它更安全地执行此操作。由于资源不足的Pod仍然可以工作,但响应速度较慢,因此自动推理有一定的局限性-由您决定可以容忍的缓慢程度。您还可以决定高峰负载下可接受的资源消耗级别,而不是可能表明您的应用存在错误甚至是攻击的过度消耗。还有一个进一步的限制,因为度量单位本身就是一种近似估算资源功率的尝试,而资源功率实际上会随硬件类型而变化(内存和CPU的运行方式和数量可能会有所不同),因此可能会跨集群甚至是节点上的节点而变化。如果硬件不完全相同,则集群。
在我看来,您对top做的事情是入门的好方法。无论如何,您都希望监视群集的资源使用情况,因此跟踪并随时调整限制是一个好主意。如果您可以在kubernetes之外运行相同的应用程序并四处浏览以查看其他使用相同语言的应用程序可以做什么,那么这将有助于表明您是否可以采取任何措施来提高利用率(例如,众所周知,容器中JVM上的内存消耗要求进行一些调整以获得正确的位置)。