k8s运维进阶之 kubelet的预留资源解析多大合适
k8s运维进阶之 kubelet的预留资源解析多大合适
我的问题
- Capacity和Allocatable的关系 计算公式
- 如果预留的资源较小的危害是什么:cpu和mem不足时 oom或者运行较慢
- 为什么有了预留 还要 有驱逐:
- 预留包不包含daemonset :
kubelet的预留资源解析
官方文档解析:其实也是Capacity和Allocatable的关系
- https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/reserve-compute-resources/
- 官方文档已经说的比较清晰了
- Kubernetes 的节点可以按照 Capacity 调度。默认情况下 pod 能够使用节点全部可用容量。
- 这是个问题,因为节点自己通常运行了不少驱动 OS 和 Kubernetes 的系统守护进程。
- 除非为这些系统守护进程留出资源,否则它们将与 Pod 争夺资源并导致节点资源短缺问题。
- kubelet 公开了一个名为 'Node Allocatable' 的特性,有助于为系统守护进程预留计算资源。Kubernetes 推荐集群管理员按照每个节点上的工作负载密度配置 'Node Allocatable'。
- 公式:Allocatable + Reserved + eviction-threshold = Capacity
官方文档的image
分配的资源 有3种
- 目前支持 'CPU'、'memory' 和 'ephemeral-storage' 这几个参数。
配置实例
kubeReserved:
cpu: "0.5"
ephemeral-storage: 1Gi
memory: 2Gi
pid: "1000"
systemReserved:
cpu: "0.5"
ephemeral-storage: 1Gi
memory: 2Gi
pid: "1000"
volumeStatsAggPeriod: 1m0s
设置之前先看下原来的
allocatable:
cpu: "4"
ephemeral-storage: "37758379560"
hugepages-1Gi: "0"
hugepages-2Mi: "0"
memory: 3359828Ki
pods: "110"
- 设置完查看
allocatable:
cpu: 3500m
ephemeral-storage: 40970464Ki
hugepages-1Gi: "0"
hugepages-2Mi: "0"
memory: 3359828Ki
pods: "110"
capacity:
cpu: "4"
ephemeral-storage: 40970464Ki
hugepages-1Gi: "0"
- 此时再去查看内存中的配置
root@k8s-master01:~# curl -k -s https://localhost:10250/configz --header "Authorization: Bearer $TOKEN" |jq |grep -i rese -A 4
"kubeReserved": {
"cpu": "0.5"
},
kube-reserved 和 system-reserved的区别 没区别
- 你以为它会做一个精细化的 预留设置吗?
购买课程即可解锁深层内容
因网络连接问题,剩余内容暂无法加载。

浙公网安备 33010602011771号