这个问题很少有同学能够全面地回答上这个问题,因为在日常的运维中Pod驱逐并不常见。这个问题主要分两个方面:第一是何时会发生驱赶,第二是驱赶哪些Pod。
简单来说就是资源不足,要么是在Pod调度过程中资源不足导致高优先级Pod无法创建,要么是Node节点本地资源不足,譬如,内存、nodefs、pid。kubelet会通过cadvisor监控主机上面的资源用量。当kubelet发现内存不足的时候,便会触发驱赶动作。
这里还有一个细节,kubelet在资源不足的情况下,优先执行gc,回收无用的镜像和容器,gc过后还是无法满足资源需求的时候,才会执行驱赶。
kubelet 首先根据他们对短缺资源的使用是否超过请求来排序,譬如当前是内存短缺,那么kubelet就会统计: Pod的内存用量 - Pod的内存request 的值,根据超过的值进行降序排列,干掉超额最大的Pod。其次是通过优先级,驱逐优先级较低的Pod。
页面更新:2024-04-19
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号