Loading

k8s资源预留

Kubernetes 的节点可以按照 Capacity 调度。默认情况下 pod 能够使用节点全部可用容量。 这是个问题,因为节点自己通常运行了不少驱动 OS 和 Kubernetes 的系统守护进程。 除非为这些系统守护进程留出资源,否则它们将与 pod 争夺资源并导致节点资源短缺。

  • 未设置资源预留导致flannel组件oom,频繁重启

image-20220124145203163

处理方案

kubelet 公开了一个名为 'Node Allocatable' 的特性,有助于为系统守护进程预留计算资源。 Kubernetes 推荐集群管理员按照每个节点上的工作负载密度配置 Node Allocatable

  • rke配置方案

    在kubelet配置中添加以下配置

    extra_args:
      cgroups-per-qos: 'true'
      cgroup-driver: 'cgroupfs'
      # 节点资源预留
      enforce-node-allocatable: 'pods'
      # 操作系统预留资源量
      system-reserved: 'cpu=1,memory=2048Mi'
      # k8s自身组件预留资源量
      kube-reserved: 'cpu=0.5,memory=512Mi'
      # POD驱逐,这个参数只支持内存和磁盘。
      ## 硬驱逐阈值
      ### 当节点上的可用资源降至保留值以下时,就会触发强制驱逐。强制驱逐会强制kill掉POD,不会等POD自动退出。
      eviction-hard: 'memory.available<300Mi,nodefs.available<10%,imagefs.available<10%,nodefs.inodesFree<5%'
      ## 软驱逐阈值
      ### 以下四个参数配套使用,当节点上的可用资源少于这个值时但大于硬驱逐阈值时候,会等待eviction-soft-grace-period设置的时长;
      ### 等待中每10s检查一次,当最后一次检查还触发了软驱逐阈值就会开始驱逐,驱逐不会直接Kill POD,先发送停止信号给POD,然后等待eviction-max-pod-grace-period设置的时长;
      ### 在eviction-max-pod-grace-period时长之后,如果POD还未退出则发送强制kill POD"
      eviction-soft: 'memory.available<500Mi,nodefs.available<20%,imagefs.available<20%,nodefs.inodesFree<10%'
      # 当node的内存/磁盘空间达到一定的阈值后,要观察一段时间,如果改善到低于阈值就不进行驱逐,若这段时间一直高于阈值就进行驱逐
      eviction-soft-grace-period: 'memory.available=1m30s,nodefs.available=1m30s,imagefs.available=1m30s,nodefs.inodesFree=1m30s'
      # 终止pod容器要花费的时间
      eviction-max-pod-grace-period: '30'
      # Node Condition Pressure换回False需要等待的时间,防止Node Condition来回切换引起scheduler做出错误的调度决定
      eviction-pressure-transition-period: '30s'

image-20220124151334678

  • 确认

服务器资源为4c/12G

查看node信息

$ kubectl describe node 192.168.2.27|grep -A 10 Capacity
Capacity: #Node节点总资源量
  cpu:                4
  ephemeral-storage:  102350Mi
  hugepages-2Mi:      0
  memory:             12271508Ki
  pods:               110
Allocatable: #k8s可用资源量
  cpu:                2500m
  ephemeral-storage:  96589578081
  hugepages-2Mi:      0
  memory:             9342868K
posted @ 2022-01-24 15:17  亚里士多智  阅读(795)  评论(0编辑  收藏  举报