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的区别 没区别

  • 你以为它会做一个精细化的 预留设置吗?


购买课程即可解锁深层内容

 

图片


 

宁阳阳
 
 
因网络连接问题,剩余内容暂无法加载。
 
 
 
 
 
posted @ 2024-03-16 01:08  技术颜良  阅读(125)  评论(0)    收藏  举报