Kubeturbo 资源限制
缺省情况下, Kubeturbo 部署没有限制或请求。 如果您更愿意设置限制或请求,那么 Kubeturbo 所需的资源量与它所管理的工作负载和 pod 的数量相关。 工作负载定义为唯一的工作负载控制器,例如 deployment
foo 和 statefulset bar。
部署 Kubeturbo 后,可以查看 Turbonomic 供应链中的工作负载数量。 将作用域设置为单个容器平台集群,然后查看工作负载控制器实体。
Kubeturbo 每 1 分钟发现,收集和处理 容器平台资源 的度量值,然后每 10 分钟将数据发送到 Turbonomic 以进行分析。 由于数据每 1 分钟收集一次,因此 Kubeturbo 会始终将数据保存在内存中。
使用下表作为设置内存限制的指南:
| Pod 数 | 工作量控制器数量 | 建议内存上限(Gi) |
|---|---|---|
| 5,000 名 | 2,500 | 4 |
| 5,000 名 | 5,000 名 | 4 |
| 10,000 | 5,000 名 | 6 |
| 10,000 | 10,000 | 6.5 |
| 20,000 | 10,000 | 9.2 |
| 20,000 | 20,000 | 12 个月 |
| 30,000 | 15,000 台 | 13 |
| 30,000 | 30,000 | 16 |
要考虑的要点:
为避免 CPU 节流,请勿设置 CPU 限制。
如果需要,可以将内存请求设置为 1 GB。
如有需要,可将 CPU 请求设置为 1 个内核(1000 毫微米)。
如果 Kubeturbo 内存使用量非常高,而且随着时间的推移持续增长,请设置一个低于节点内存容量的限制,以限制内存使用量。 请参考上表。
要配置 Kubeturbo 容器规格限制和请求,请参阅接下来的章节。
YAML 配置:Kubeturbo 容器规格限制和请求
编辑部署。
kubectl edit deployment kubeturbo -n turbo在
containers部分,找到并更新resources: {}部分,如下例所示:resources: limits: memory: 16Gi requests: memory: 1Gi如果该部分不存在,请按说明创建。
保存您的更改。
kubeturbopod 重启时会自动应用更改。验证更改。
kubectl get pods -n turbo -o custom-columns='NAME:.metadata.name,MEMORY_REQ:spec.containers[].resources.requests.memory,MEM_LIM:spec.containers[].resources.limits.memory'输出结果应与下面的示例类似。 该输出结果确认
kubeturbo的内存限制和请求设置正确。NAME MEMORY_REQ MEM_LIMkubeturbo-6cbfc74b68-dfvtk 1Gi 16Gi
操作员配置:Kubeturbo 容器规格限制和请求
编辑部署。
kubectl edit kubeturbo kubeturbo-release -n turbo在
spec部分,找到并更新resources: {}部分,如下例所示。resources: limits: memory: 16Gi requests: memory: 1Gi如果该部分不存在,请按说明创建。
保存您的更改。
kubeturbo-releasepod 重启时会自动应用更改。验证更改。
kubectl get pods -n turbo -o custom-columns='NAME:.metadata.name,MEMORY_REQ:spec.containers[].resources.requests.memory,MEM_LIM:spec.containers[].resources.limits.memory'验证输出是否与下例相似。 该输出结果确认
kubeturbo-release的内存限制和请求设置正确。NAME MEMORY_REQ MEM_LIMkubeturbo-release-6cbfc74b68-dfvtk 1Gi 16Gi