pod为什么会被驱逐及如何避免pod被驱逐导致的服务中断
Pod被驱逐的原因主要有以下几点:
- 资源不足:当节点资源(如CPU、内存、存储等)不足以满足Pod的资源需求时,调度器会选择将其中一个或多个Pod驱逐出节点,以便在资源有限的节点上安排新的Pod。
- 超出资源限制:Pod可以指定资源上限,如CPU和内存的限制。如果Pod使用的资源超过了所指定的限制,该Pod可能会被驱逐。
- 节点压力驱逐:Kubernetes会不断检查资源使用情况,当节点压力过大的时候,会触发节点压力驱逐。例如,当nodefs(节点文件系统)使用量达到阈值时,kubelet会拒绝在该节点上运行新Pod,并尝试删除已死亡的Pod和容器来回收磁盘空间。如果此时nodefs使用量仍然没有低于阈值,kubelet就会开始驱逐Pod。
- 镜像拉取失败:如果Pod所需的镜像无法拉取或拉取失败,Kubernetes可能会重试一定次数后将其标记为“Evicted”状态,即被驱逐。
此外,Pod被驱逐的原因还可能与Pod的优先级和服务质量(QoS)有关。在抢占式驱逐中,kube-scheduler会检查是否通过驱逐一些优先级较低的Pod,以保障新的Pod可以调度。
请注意,Pod被驱逐是一种保护机制,旨在确保Kubernetes集群的稳定运行和资源的合理利用。但是,驱逐操作可能会导致Pod中的数据丢失或服务中断,因此在设计应用时需要考虑到这一点,并采取相应的措施来避免或减少影响。
要避免Pod被驱逐导致的服务中断,可以采取以下措施:
资源限制与预留:
- 为Pod设置合适的资源请求(requests)和限制(limits),确保Pod有足够的资源运行,同时避免资源浪费。
- 考虑为关键服务预留节点资源,确保这些服务在资源紧张时不会被驱逐。
Pod优先级与抢占策略:
- 根据服务的重要性和优先级priorityClassName,为Pod设置不同的优先级。这样,在资源不足时,优先级较低的Pod会首先被驱逐,从而保护优先级较高的服务。
- 谨慎使用抢占策略preemptionPolicy,确保在驱逐Pod之前已经充分评估了其对服务的影响。
PodDisruptionBudget(PDB):
使用PodDisruptionBudget来限制可以驱逐的Pod数量,确保服务在升级或维护过程中仍有一定的容错能力。
根据服务的实际需求和可用性要求,设置合适的PDB值。
滚动升级与蓝绿部署:
- 采用滚动升级策略,逐步更新Pod,以减少同时被驱逐的Pod数量,降低服务中断的风险。
- 考虑使用蓝绿部署,通过同时运行新旧版本的服务,确保在升级过程中服务不中断。
监控与告警:
- 实时监控Pod的状态和节点资源使用情况,及时发现潜在的资源不足问题。
- 设置告警规则,当节点资源使用率达到一定阈值时,及时通知相关人员进行处理。
备份与恢复策略:
- 为Pod数据设置备份策略,定期备份数据以防止数据丢失,可使用velero。
- 在Pod被驱逐后,尽快恢复服务并恢复数据,以减少服务中断的影响。
通过综合考虑以上措施,可以有效降低Pod被驱逐导致的服务中断风险。同时,需要根据具体的应用场景和需求来定制合适的策略。
pod为什么会被驱逐及如何避免pod被驱逐导致的服务中断的更多相关文章
- k8s驱逐篇(2)-kubelet节点压力驱逐
kubelet节点压力驱逐 kubelet监控集群节点的 CPU.内存.磁盘空间和文件系统的inode 等资源,根据kubelet启动参数中的驱逐策略配置,当这些资源中的一个或者多个达到特定的消耗水平 ...
- k8s驱逐篇(3)-kubelet节点压力驱逐-源码分析篇
kubelet节点压力驱逐-概述 kubelet监控集群节点的 CPU.内存.磁盘空间和文件系统的inode 等资源,根据kubelet启动参数中的驱逐策略配置,当这些资源中的一个或者多个达到特定的消 ...
- pod(五):pod hook(pod钩子)和优雅的关闭nginx pod
目录 一.系统环境 二.前言 三.pod hook(pod钩子) 四.如何优雅的关闭nginx pod 一.系统环境 服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架 ...
- k8s驱逐篇(4)-kube-scheduler抢占调度驱逐
介绍kube-scheduler抢占调度驱逐之前,先简单的介绍下kube-scheduler组件: kube-scheduler简介 kube-scheduler组件是kubernetes中的核心组件 ...
- 【解决】Pod 状态一直 Terminating,Need to kill Pod
偶然查看服务时发现有个单副本的 pod 一直处于Terminating状态,已达 8 天之久,且手动删除删除不掉 [appuser@lyj 2019-09-20 14:35:36 ~]$ kubect ...
- Kubernetes Pod 驱逐详解
原文链接:Kubernetes Pod 驱逐详解 在 Kubernetes 中,Pod 使用的资源最重要的是 CPU.内存和磁盘 IO,这些资源可以被分为可压缩资源(CPU)和不可压缩资源(内存,磁盘 ...
- 十六, k8s集群资源需求和限制, 以及pod驱逐策略。
目录 容器的资源需求和资源限制 QoS Classes分类 Guaranteed Burstable Best-Effort kubernetes之node资源紧缺时pod驱逐机制 Qos Class ...
- kubernetes之node资源紧缺时pod驱逐机制
在系统硬件资源紧缺的情况下保证node的稳定性, 是kubelet需要解决的一个重要问题 1.驱逐策略 kubelet持续监控主机的资源使用情况, 一旦出现资源紧缺的迹象, kubelet就会主动终止 ...
- Kubernetes中 Pod 是怎样被驱逐的?
前言 在 Kubernetes 中,Pod 使用的资源最重要的是 CPU.内存和磁盘 IO,这些资源可以被分为可压缩资源(CPU)和不可压缩资源(内存,磁盘 IO).可压缩资源不可能导致 Pod 被驱 ...
- Kubernetes Pod驱逐策略
Kubelet 能够主动监测和防止计算资源的全面短缺. 在资源短缺的情况下,kubelet 可以主动地结束一个或多个 Pod 以回收短缺的资源. 当 kubelet 结束一个 Pod 时,它将终止 P ...
随机推荐
- 《字节码编程》PDF107页,11万字。既然市面缺少ASM、Javassist、Byte-buddy成体系的学习资料,那我来!
作者:小傅哥 博客:https://bugstack.cn - 汇总系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 让人怪不好意思的,说是出书有点膨胀,毕竟这不是走出版社的流程,选题. ...
- SpringAOP配置要点
一.基于配置文件 1.关于aop配置文件相关 <!--配置aop--> <aop:config> <!--配置切入点表达式--> <aop:pointcut ...
- 每日一道Java面试题:说一说Java中的泛型?
写在开头 今天的每日一道Java面试题聊的是Java中的泛型,泛型在面试的时候偶尔会被提及,频率不是特别高,但在日后的开发工作中,却是是个高频词汇,因此,我们有必要去认真的学习它. 泛型的定义 什么是 ...
- 【STL源码剖析】vector类模拟实现 了解底层-走进底层-掌握底层【超详细的注释和解释】
今天博主继续带来STL源码剖析专栏的第二篇博客了! 今天带来vector的模拟实现! 其实在很多人学习C++过程中,都是只学习一些STL的使用方式,并不了解底层的实现.博主本人认为,这样的学习这样的技 ...
- 【图论】【Matlab】最小生成树之Kruskal算法【贪心思想超详细详解Kruskal算法并应用】
最小生成树之Kruskal算法 注意:内容学习来自:b站CleverFrank数模算法精讲 导航 前言 实际问题引入 Kruskal算法 整体代码展示 尾声 前言 博主今天给大家带来的是最小生成树中两 ...
- Oracle预防alert日志过大的脚本:del_alertlog.sh
Oracle预防alert日志过大的脚本 参考:https://blog.csdn.net/jc_benben/article/details/88798523 在原文思路的基础上,做了一些修正,实测 ...
- sshd命令-测试sshd_config配置是否正确
sshd命令来自于英文词组"SSH daemon"的缩写,其功能是用于openssh服务器守护进程.openssh套件能够为两台主机之间建立加密的.可信任的数据通信服务,是rlog ...
- Windows终端的一些配置
前言 记录早前拿到新的笔记本(win10)后配置命令行的过程,以下是环境: 命令行 : CMD,PowerShell7 Shell :Windows Terminal 设置编码格式(当前代码页)为UT ...
- Ubuntu安装typecho博客
Ubuntu安装typecho博客 简介 名称的来历 Typecho 是由 type 和 echo 两个词合成的,来自于开发团队的头脑风暴. Type,有打字的意思,博客这个东西,正是一个让我们通过打 ...
- NC24623 Tree Decoration
题目链接 题目 题目描述 Farmer John is decorating his Spring Equinox Tree (like a Christmas tree but popular ab ...