范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

细说KubernetesPod的驱逐

  !!  大家好,我是乔克,一个爱折腾的运维工程,一个睡觉都被自己丑醒的云原生爱好者。
  作者:乔克
  公众号:运维开发故事
  博客:www.jokerbai.com
  原文:https://sysdig.com/blog/kubernetes-pod-evicted/
  作者:JAVIER MARTÍNEZ
  Kubernetes Pods被驱逐是什么意思?它们被终止了,通常是由于没有足够的资源,但是为什么会发生这种情况呢?
  驱逐是一个过程,分配给一个节点的Pod被要求终止。Kubernetes中最常见的情况之一是抢占,为了在资源有限的节点上安排一个新的Pod,通常需要终止另外一个Pod。
  另外,Kubernetes会不断检查资源使用情况,当节点压力过大的时候,会触发节点压力驱逐。
  每天,数以千计的Pod被驱逐出他们的家园。搁浅和迷茫,他们不得不放弃以前的生活方式。他们中的一些人甚至会无家可归。当前的社会,对CPU和内存的要求会越来越高。
  本篇文章将从以下几个方面来展开介绍:Pod被驱逐的原因:抢占和节点压力抢占式驱逐Pod优先级类节点压力驱逐服务质量类其他类型的驱逐Prometheus中的Kubernetes Pod驱逐监控Pods被驱逐的原因:抢占和节点压力
  Kubernetes中发生Pod驱逐的原因有几个,最重要的原因是:抢占节点压力驱逐抢占驱逐
  抢占的过程如下:如果一个新的Pod需要被调度,但没有任何合适的节点有足够的资源,那么kube-scheduler将检查是否通过驱逐(终止)一些优先级较低的Pod,用来保障新的Pod可以调度。
  让我们先了解一下Kubernetes调度是如何工作的。Pod调度
  Kubernetes调度是将Pod分配给节点的过程。
  默认情况下,有一个负责调度的Kubernetes实体,称为kube-scheduler,它将在控制平面上运行。Pod将在Pending状态下开始,直到找到一个匹配的节点。
  将一个Pod分配给一个节点的过程遵循这个顺序。预选打分预选
  在预选过程中,kube-scheduler将选择当前Pod可能被放置的所有节点。这里将考虑到污点和容忍度等特征。一旦完成,它将有一个适合该Pod的节点列表。打分
  在打分过程中,kube-scheduler将从上一步得到的列表中,给每个节点分配一个分数。这样一来,候选节点就会从最合适到最不合适排序。如果两个节点有相同的分数,kube-scheduler会将它们随机排序。image.png
  但是,如果没有合适的节点让Pod运行,会发生什么?在这种情况下,Kubernetes将启动抢占程序,试图驱逐低优先级的Pod,以便分配新的Pod。Pod Priority Class
  怎样才能防止某个特定的Pod在抢占过程中被驱逐?有时候,一个特定的Pod对你来说是至关重要的,不应该被终止。
  这就是为什么Kubernetes具有Priority Class。
  Priority Class是一个Kubernetes对象,允许我们将数字优先级值映射到特定的Pod。那些数值较高的被归类为更重要,不太可能被驱逐。
  你可以通过以下方式查询当前的Priority Class。 kubectl get priorityclasses
  kubectl get pc
  NAME VALUE GLOBAL-DEFAULT AGE
  system-cluster-critical 2000000000 false 2d
  system-node-critical 2000001000 false 2d
  测试Priority Class
  这里有三个Pod:blueberry, raspberry 和 strawberry。 NAME READY STATUS RESTARTS AGE
  blueberry 1/1 Running 0 4h41m
  raspberry 1/1 Running 0 58m
  strawberry 1/1 Running 0 5h22m
  还有两个Priority Class:trueberry和falseberry。其中trueberry拥有比较高的优先级。 apiVersion: scheduling.k8s.io/v1
  kind: PriorityClass
  metadata:
  name: trueberry
  value: 1000000
  globalDefault: false
  description: "This fruit is a true berry"
  apiVersion: scheduling.k8s.io/v1
  kind: PriorityClass
  metadata:
  name: falseberry
  value: 5000
  globalDefault: false
  description: "This fruit is a false berry"
  blueberry将使用trueberryraspberry和strawberry将使用ffalseberry
  这意味着在发生抢占的情况下,raspberry和strawberry更有可能被驱逐,以便为更高优先级的Pod腾出空间。
  然后通过在Pod定义中加入优先级类别,将其分配给Pod。 priorityClassName: trueberry
  现在让我们试着再增加三种水果:所有的新水果将包含更高的优先级类,称为trueberry。
  由于这三个新的水果对内存或CPU的要求是节点无法满足的,kubelet会驱逐所有比新水果优先级低的Pod。Blueberry保持运行,因为它有更高的优先级。 NAME READY STATUS RESTARTS AGE
  banana 0/1 ContainerCreating 0 2s
  blueberry 1/1 Running 0 4h42m
  raspberry 0/1 Terminating 0 59m
  strawberry 0/1 Terminating 0 5h23m
  tomato 0/1 ContainerCreating 0 2s
  watermelon 0/1 ContainerCreating 0 2s
  image.png
  最终结果如下: NAME READY STATUS RESTARTS AGE
  banana 1/1 Running 0 3s
  blueberry 1/1 Running 0 4h43m
  tomato 1/1 Running 0 3s
  watermelon 1/1 Running 0 3s
  节点压力驱逐
  除了抢占之外,Kubernetes还不断检查节点资源,如磁盘压力、CPU或内存不足(OOM)。
  如果节点的资源(如CPU或内存)消耗达到一定的阈值,Kubelet将开始驱逐Pod,以释放资源。服务质量(QoS)将被纳入考虑范围,以确定驱逐顺序。服务质量QoS
  在Kubernetes中,Pod被赋予三种QoS类别之一,这将定义它们在缺乏资源的情况下被驱逐的可能性。这三种QoS分别是:GuaranteedBurstableBestEffort
  这些QoS类别是如何分配给Pod的?这是基于对CPU和内存的限制和请求。limits:一个容器可以使用的资源的最大数量。requests:容器运行所需的最小资源量。image.pngGuaranteed
  如果一个Pod被分配了一个Guaranteed的QoS等级,它们的特征如下:Pod中的所有容器都为CPU和内存设置了限制和请求。在Pod中的所有容器都有相同的CPU限制和CPU请求的值。Pod中的所有容器都有相同的内存限制和内存请求值。
  一个有保证的Pod在正常情况下不会被驱逐以分配给节点中的另一个Pod。Burstable
  如果一个Pod的QoS等级为Burstable,那么它将被分配到一个QoS等级。它没有担保的QoS等级。为Pod中的一个容器设置了限制或请求。
  一个Burstable Pod可以被驱逐,但比下一个类别的可能性小。BestEffort
  一个Pod将被分配一个BestEffort的QoS类别,它们将:没有为Pod中的任何容器设置限制和请求。
  BestEffort Pod在节点中发生节点压力过程的情况下具有最高的驱逐机会。
  重要的是:在限制和请求中可能有其他可用的资源,如短暂的存储,但它们不用于QoS类的计算。image.png
  如前所述,QoS类将被纳入节点压力驱逐的考虑范围。以下是内部发生的过程。
  kubelet按照以下顺序排列要被驱逐的Pod。使用量超过请求的BestEffort Pods或Burstable Pods使用量低于请求的Burstable Pods或Guaranteed Pods
  Kubernetes将尝试在第二组之前驱逐第一组的Pod。
  从上述内容中得到的一些启示。如果在你的容器中添加了非常低的请求,他们的Pod可能会被分配到组1,这意味着它更有可能被驱逐。你无法知道哪个特定的Pod会被驱逐,只是Kubernetes会尝试在第2组之前驱逐第1组的Pod。有保证的Pod通常不会被驱逐:Kubelet不会为了安排其他Pod而驱逐它们。但是,如果一些系统服务需要更多的资源,kubelet将在必要时终止有保证的Pod,并且总是以最低的优先级。其他类型的驱逐
  本文主要介绍抢占和节点压力驱逐,但Pod也可以通过其他方式被驱逐。例子包括。API发起的驱逐
  你可以通过使用Kubernetes Eviction API【1】请求对你的一个节点中的Pod进行按需驱逐。基于污点的驱逐
  通过Kubernetes污点和容忍度,可以指导你的Pod应该如何分配给Node。但是,如果你将NoExecute污点应用于现有的Node,所有不容忍它的Pod将被立即驱逐。节点排水
  有些时候,节点变得无法使用,或者你不想再在上面工作。命令kubectl cordon可以防止新的Pod被安排在它上面,但也有可能一次性完全清空所有当前Pod。如果你运行kubectl drain nodename,该节点中的所有Pod将被驱逐,尊重其优雅的终止期。Kubernetes Pod驱逐监控
  在你的云解决方案中,你可以使用Prometheus来轻松监控Pod驱逐的做法。 kube_pod_status_reason{reason="Evicted"} > 0
  image.png
  这将显示你的集群中所有被驱逐的Pod。你也可以将其与kube_pod_status_phase{phase="Failed"}配对,以提醒那些在Pod发生故障后被驱逐的人。
  如果你想深入了解,请查看以下关于Prometheus中监控资源的文章。
  如何合理调整Kubernetes的资源限制【1】 Kubernetes容量规划:如何合理安排你的集群的请求【2】总结
  正如你所看到的,驱逐只是Kubernetes的另一个功能,它允许你控制有限的资源:在这种情况下,Pod将使用的节点。
  在抢占期间,Kubernetes将试图通过驱逐优先级较低的Pod来释放资源,以安排一个新的Pod。通过优先级类,你可以控制哪些Pod更有可能在抢占后继续运行,因为它们被驱逐的可能性较小。
  在执行过程中,Kubernetes将检查节点压力,并在需要时驱逐Pod。通过QoS类,你可以控制哪些Pod在节点压力的情况下更有可能被驱逐。
  内存和CPU是节点中的重要资源,你需要配置你的Pod、容器和节点来使用它们的正确数量。如果你对这些资源进行相应的管理,不仅可以节省成本,而且还可以确保重要的进程无论如何都能继续运行。文档
  【1】https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#create-eviction-pod-v1-core
  【1】https://sysdig.com/blog/kubernetes-resource-limits/
  【2】https://sysdig.com/blog/kubernetes-capacity-planning/
  最后,求关注。 如果你还想看更多优质原创文章,欢迎关注我们的公众号「 运维开发故事」。
  如果我的文章对你有所帮助,还请帮忙一下,你的支持会激励我输出更高质量的文章,非常感谢!
  你还可以把我的公众号设为「星标」,这样当公众号文章更新时,你会在第一时间收到推送消息,避免错过我的文章更新。

新规!手机电池可拆卸又回来了?我们都知道,为提升机身内部空间利用率,从而利于机身轻薄化设计,手机电池早已不可更换,那如果回到过去手机电池可拆卸更换的时候,你愿意吗?虽说现今不可拆卸电池的手机有诸多优势,比如机身国际油价持续上涨,新一轮石油危机即将到来?对我国有什么影响?今年2月以来,随着俄罗斯和乌克兰军事冲突事件的日渐加剧,全球资本市场也都遇到了不小的冲击,从世界各主要经济体,到世界各大知名投资机构,再到我们每名普通老百姓,都或多或少的受到了此次国际油价重回100美元大关,国内每卖5辆汽车就有1辆新能源近期以来,受俄乌地缘政治等影响,国际原油价格持续攀升,布伦特原油期货价格在创下139。10美元桶刷新自2008年以来记录后,目前仍维持在100美元桶上方。持续高位的原油价格,也推动国际最新研究欧洲漂浮的微塑料或积聚在北冰洋来源中国新闻网中新网北京3月18日电(记者孙自法)施普林格自然旗下开放获取学术期刊科学报告最新发表一篇环境研究论文认为,欧洲河流中漂浮的微塑料或在北冰洋北欧海及巴芬湾分批积聚。此前颜色妖艳的冥王星,竟然是远古病毒的天堂冥王星也叫阎王星冥神星,它既幸运又悲催,它曾经是太阳系第九大行星,自从1930年2月被汤博发现以来,直到2006年6月被踢出太阳系行列,冥王星霸占太阳系第九大行星的称号整整76年。一发伤害一万七!中路法核荣光再临!37。4输出毁天灭地看完XYG对阵eStar比赛后的你是不是和我一样激动的心久久难以平复话不多说今天我们就来一起复盘这个在赛场上伤害爆炸的女娲吧01hr灵梦无心战斗,一心发育由于女娲前期弱势,所以敌方完美世界手游搬砖打金详细教程,最适合单人搬砖的手游哈喽,大家好,我是懒羊羊!首先介绍一下,完美世界手游是由腾讯游戏和完美世界联合打造的自由飞行战斗MMORPG手游。这个手游也快三年了,很多朋友在玩的时候赚点零花钱或者出点金币自己打不止游戏防空炮是如何打下飞机的?欢迎收看本期的不止游戏,我是乔伊。1903年12月17日,莱特兄弟首次试飞了世界上第一架飞机,与此同时军方也敏锐地察觉到这种新型航空器的诞生,将会在未来对战场产生极大的影响。190做好这三个方面,娃的未来不用愁因为妻子在异地工作,一般周末和节假日才能回家,所以大部分时间都是我这个爸爸在带孩子。育儿不是小事,放在哪个家庭当中都当作头等大事。但真正的育儿过程中,却基本没什么大事,全是吃喝拉撒雪域长歌一条神奇的天路,把我们带进人间天堂每当行进在宽广的川藏公路,看见远处绵延的群山每当耳边传来那首脍炙人口的天路,我就情不自禁地想起十八军,以及那段激情燃烧的岁月。2019年5月30日,当年十八军军长张国华的女儿张小康峨眉山金顶金殿和银殿详介峨眉山金顶有一寺一庵,华藏寺和卧云庵。华藏寺被称为金殿,卧云庵被称为银殿。金顶华藏寺(金殿)要上金顶,须先经过高大的银色世界牌坊,这是专为华藏寺开光时所竖。银色世界四字为释真禅(上
绝美!无锡鼋头渚夜樱游园开启现代快报讯(记者陈敏)近日,2023中国无锡太湖鼋头渚国际樱花节开启,整个樱花节从3月1日持续至5月3日。其中,夜赏樱花游园会于18日正式开启,持续至3月28日,持续11天,夜间华个人旅行社注册需要什么条件及办理流程个人旅行社注册需要什么条件及办理流程春暖花开的季节,外出旅游蠢蠢欲动,从而旅行社的需求量增加。目前旅行社的需求供不应求,个人注册一家旅行社需要什么条件和流程呢?接下来我们来学习一下纳乌鲁斯节来临,哈萨克斯坦人小长假可以去哪里玩?哈萨克斯坦人在纳乌鲁斯节可以休息3天,3月21日至23日。学生的春假是3月18日26日。如果父母可以调休或请假,那么在三月的小长假里,他们可以就有5到7天的时间和家人们一起度过愉快西湖,不止在杭州,大成都也有了西湖,最出名的莫过于浙江杭州了,人们一般说的西湖也多是说的杭州西湖。断桥残雪,雷锋夕照,多是美不胜收的仙景。可是你知道吗,中国还有很多个西湖,福州西湖海口西湖兰州西湖青岛小西湖沈阳即将加盟国安?恩加德久财务状况很重要,不能保证还留在根特直播吧3月21日讯据比利时媒体voetbalnieuws报道,国安正在推进喀麦隆中后卫恩加德久的转会,后者也承认很可能离开根特。当前在转会市场上,北京国安正在加速恩加德久的引进工作NBA明日战况分析及比分预测特别专栏今日精彩比赛回顾(今天精彩赛事5场,小编通过自己犀利幽默的文采再次带领各位粉丝一起来回顾一下比赛精彩瞬间)布克空砍46分难救主,亚力山大40分主场力克太阳升至西部第八北京时德尚迈尼昂会是一号门将格列兹曼可能成为常规性组织核心直播吧3月21日讯法国国家队主帅德尚日前在出席球队新闻发布会时表示,迈尼昂会是球队的一号门将,格列兹曼会成为常规性的组织核心。记者您在门将位置上已经有出场先后顺序安排了吗?德尚这个纳达尔跌出ATP世界前十!17年惊人纪录宣告终结!北京时间3月20日消息。ATP公布了本周世界排名,男单方面,刚刚在印第安维尔斯大师赛夺冠的阿尔卡拉斯携冠重返世界第一,卫冕失败的弗里茨损失积分下滑到第十位勉强保住Top10的排名。安丘农商银行服务送上门实事办到家客户服务无小事。近年来,安丘农商银行始终坚持以客户为中心的服务理念,扎实推进我为群众办实事实践活动,以贴心服务满足老年客户特殊群体金融需求,用实际行动提升客户金融服务获得感。3月1乌鲁木齐出台第二批就业创业政策涉及创业社区等21个方面21日,乌鲁木齐市稳就业促创业新闻发布会现场。喇小飞摄中新网乌鲁木齐3月21日电(喇小飞)记者从21日举行的乌鲁木齐稳就业促创业新闻发布会上获悉,乌鲁木齐出台第二批稳就业促创业政策童心飞翔,点亮梦想!辉南县泰安社区小候鸟图书角故事分享会开始啦3月19日上午,辉南县泰安社区新时代文明实践站联合辖区课后班开展以童心飞翔点亮梦想为主题的小候鸟图书角故事分享活动。泰安社区新时代文明实践站温馨多元有趣的活动空间,让孩子们很快融入