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的区别 没区别
- 你以为它会做一个精细化的 预留设置吗?
购买课程即可解锁深层内容
因网络连接问题,剩余内容暂无法加载。
分类:
k8s维护篇
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2023-03-16 go库存扣减的几种方法
2022-03-16 calico网络原理、组网方式和使用(重要)
2022-03-16 调度之pod反亲和性(podAntiAffinity)
2022-03-16 tcp-flags
2022-03-16 go常用的 10 个通用函数
2022-03-16 Iptables 规则用法小结
2021-03-16 Kubernetes(k8s)资源控制器 RS、Deployment详细介绍