memory-management - 如何计算 Kubernetes 集群的节点可分配资源?
问题描述
我们有一个集群,其中节点资源不足,导致速度缓慢和过度提交问题。这迫使我们经常重启节点。我们计划实施一个节点可分配资源策略,在系统、kubelet 和应用程序 pod 之间分配可用的 CPU、内存和临时存储。
在这里遇到了一些关于可分配资源计算的指南。
它没有指定系统和 kubelet 资源之间的分割量。此外,我们正在进行开放式轮班,因此不确定其中有多少适用。
解决方案
正如您所提到的,您正在使用OpenShift
并且您提供的文档来自 GCP。默认要求,参数可能因云提供商规范而异。
不幸的是,我不是OpenShift
用户,但您可以在操作系统文档中找到:
为节点组件保留的资源基于两个节点设置:kube-reserved
和system-reserved
.
您可以使用一组 = 对(例如,cpu=200m,memory=512Mi)在节点配置文件(默认为/etc/origin/node/node-config.yaml文件)的 kubeletArguments 部分设置这些值。
如何计算分配的资源?
根据以下公式计算资源的分配量:
[Allocatable] = [Node Capacity] - [kube-reserved] - [system-reserved]
如果[Allocatable]
为负数,则设置为 0。
请查看以下 OpenShift 文档:分配节点资源、容量管理、集群限制、资源限制
许多因素取决于您要使用的具体 pod/图像。有些图像可能需要 0.1 CPU,但其他图像可能需要 1CPU 才能启动。
请记住,您始终可以在 Containers.containerName.Requests 下检查每个 Pod 中的当前请求/限制:
$ os describe pod <pod-name>
或请求的资源/节点限制
$ os describe node <node-name>
在此描述的底部,您应该获得 All pods reqyest 和 limits
Non-terminated Pods: (6 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
default nginx-7cdbd8cdc9-b94r9 100m (10%) 0 (0%) 0 (0%) 0 (0%) 6m2s
default nginx-7cdbd8cdc9-nlsw7 100m (10%) 0 (0%) 0 (0%) 0 (0%) 6m2s
kube-system fluentd-gcp-v3.2.0-lwnqn 100m (10%) 1 (106%) 200Mi (7%) 500Mi (18%) 5h22m
kube-system kube-proxy-gke-stc1-default-pool-094e5c74-4dzj 100m (10%) 0 (0%) 0 (0%) 0 (0%) 5h22m
kube-system prometheus-to-sd-lbj57 1m (0%) 3m (0%) 20Mi (0%) 20Mi (0%) 5h22m
kube-system traefik-749d86f748-frs7q 0 (0%) 0 (0%) 0 (0%) 0 (0%) 158m
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 401m (42%) 1003m (106%)
memory 220Mi (8%) 520Mi (19%)
ephemeral-storage 0 (0%) 0 (0%)
attachable-volumes-gce-pd 0 0
希望它会有所帮助。
推荐阅读
- cplex - CPLEX OPL 错误 5002:即使设置最佳性目标 = 3,约束不凸仍然继续
- javascript - 问题在 Express.js 中设置新路由
- python - 仅对 NaN 值应用函数
- r - 用 tidyverse 填写 NA 的值
- javascript - 在 F11/全屏模式下,YouTube IFrame 会放大很多,结果导致视频质量变差
- javascript - 使用 ArrayCamera 会导致 1 个单位以外的对象消失
- javascript - 如何使用 JavaScript 检查数组中的项目是否唯一
- r - 有没有办法对列的特定行求和?
- suitescript2.0 - SuiteScript 培训 - 未定义参考错误
- tensorflow - model.predict_generator() 的输出]