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

细说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/
  最后,求关注。 如果你还想看更多优质原创文章,欢迎关注我们的公众号「 运维开发故事」。
  如果我的文章对你有所帮助,还请帮忙一下,你的支持会激励我输出更高质量的文章,非常感谢!
  你还可以把我的公众号设为「星标」,这样当公众号文章更新时,你会在第一时间收到推送消息,避免错过我的文章更新。

使用时间序列数据,用开源工具助力你的边缘项目InfluxData是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到的随时间变化的数据称为时间序列数据。今天,它已经成为每个行业和生态系统的一部分。它美财长警告国会政府将触及债务上限,应尽快采取行动!中新网1月14日电综合报道,美国财政部当地时间13日表示,美国政府预计将于本月19日达到债务上限,呼吁国会及时采取行动防止美国违约,否则将对经济民生,乃至全球金融稳定造成严重影响。ampampquot台胞完全可以安心来大陆学习工作创业生活ampampquot宋涛主任在厦门与台胞共商全面恢复ampampquot小三通ampampquot和两岸交流中共中央台办国务院台办主任宋涛1月28日在厦门会见来访的中国国民党前主席洪秀柱,转达习近平总书记对洪秀柱的春节祝福和问候。(中国台湾网尹赛楠摄)中国台湾网2月1日讯(记者李柏涛)1如果让奶奶看孩子,请做到这些!有些地方(比如天津)流行让姥姥看孩子,但其他地方还是奶奶看孩子的多,这也造成了婆媳矛盾的产生并加剧,甚至影响到家庭和睦。看孩子这件事,老人帮着看是情分不是本分,看孩子的主体应该是孩生孩子不需要结婚的新策,是为了提高生育率,还是为谁在开门?这条新通知来自四川省卫健委,官方文件,可以说真的不能再真了。生育登记取消结婚限制生育数量限制,说白了就是不结婚也能生孩子了,而且随便你生多少。正常人看到这种通知,最直接的是两种反应以后孩子不好好吃饭你就这样做,松软美味好消化,可可爱爱有食欲大家好,我是Allie,美好的一天从营养早餐开始,吃好早餐,一整天都精力充沛。早餐吃好午餐吃饱晚餐吃少,低油低盐清淡饮食,这是我多年的习惯,希望和朋友们一起吃出健康吃出美丽吃出好身罗杰斯伊希纳乔给球队带来了积极影响,他有状态时能带来威胁直播吧1月29日讯莱斯特城主帅罗杰斯今天在采访中,谈到了伊希纳乔的情况。罗杰斯说道在瓦尔迪受伤后,伊希纳乔会得到更多的机会。这取决于我们想要的比赛方式。他把握住机会了就会取得进球,复工啦!你现在状态是不是这样手机工作群中又活跃了起来,哦,原来春节假期余额已经严重不足。各种聚会中狂炫一通后,不少人的小肚子鼓了起来。大家缩在床上感慨道要上班了,咋提不起精神呢?复工在即,别慌,专家的这些职场你们眼中的杨玉环和历史上真实的杨玉环公元745年七月,杨天真(法号)还在出家为女道士时,唐玄宗半夜突然派人急匆匆的接她回宫。立即册封已陪伴自己五年的杨太真正式成为妃嫔,并封为贵妃,此时杨玉环才年二十七岁,玄宗已六十一鲁迅跟学生许广平都生了孩子为何还不跟发妻离婚?说起鲁迅先生的婚姻,大家也许只记得许广平,的确许广平是鲁迅一生的挚爱,但是很多人并不知道,如果换做现在他们两人的婚姻其实是不合法,甚至可以说是重婚罪,这到底是怎么回事呢?说起鲁迅的毛主席两次为刘胡兰题词,却拒绝给董存瑞题词,主席我写不合适在阅读此文之前,麻烦您点击一下关注,既方便您进行讨论与分享,又给您带来不一样的参与感,感谢您的支持!前言据统计,从1915年的明耻篇,到1974年的广西大藤峡题字,毛主席60年间替
视频海关总署去年我国进出口总值首次突破40万亿元,连续6年保持货物贸易第一大国地位视频加载中1月13日,国新办举行2022年全年进出口情况新闻发布会,海关总署新闻发言人吕大良介绍,2022年,我国进出口总值首次突破40万亿元人民币关口,在2021年高基数基础上继书写诗与远方,共赴星辰大海山东文旅交出高质量发展精彩答卷作为山东省属国企的新生力量,山东文旅集团于2020年8月正式组建,整合了鲁商集团鲁信集团山东黄金山东能源山东国惠等省属企业的优质文旅资产,是山东省首批十强产业集群(精品旅游)领军企从肠来肠往的营销策略,看疯传背后的流量经济李洁(华中科技大学)近日,肠来肠往在网络上持续掀起热潮。韩式泡面摊宇宙虾馆因定价高被网友戏谑人均消费58,一肠一蛋八只虾,而肠来肠往正是老板娘的抖音账号。有趣的是,肠来肠往因高定价省政协委员把乡村节事做成特色旅游,发掘土农乐乡土文化助农团报两会大河报豫视频记者侯冰玉在今年河南省两会上,农林界的政协委员人大代表不在少数。他们都带来了什么提案建议?带着这些问题,1月14日,大河助农团记者采访了河南省政协委员河南牧业经济学院党巴赫穆特血腥坟场,突现一只黄毛胖狗,网友吃啥胖成这样残酷血腥的战场,让乌克兰这片土地变得死气沉沉,败兴而归的士兵,硝烟四起的家园,如此环境下,一只黄毛胖狗的出现,让这片土地响起久违的笑声。(巴赫穆特战场的乌军)乌军有了新玩物,食物来中学教师王长勇让学生们获得高质量的课堂学习,享受高水平的素质教育元旦钟声敲过,新一年帷幕拉开,我们招手,跟去年忙碌的自己说声辛苦,跟崭新的一年说声你好,发自内心的笑容,被照亮也会去发光,自带温暖和治愈的力量。星光不问赶路人,历史属于奋进者,随着王天一郑惟桐十番棋因郑惟桐违约取消,事情的来龙去脉究竟如何?近日,王天一郑惟桐十番棋主办方北京梅橘体育文化传播有限公司法人刘笑通过企业公众号发文,宣称因郑惟桐单方面违约,导致王郑十番棋流产,一时在网络上引起轩然大波。为了能更好地了解实情来龙黑龙江的世界冠军与大爷们竞技!网友亲妈式喊话1月10日在北京什刹海冰场中国短道速滑队运动员武大靖头戴熊猫帽身着军大衣与大爷们进行滑冰竞速赛后他又化身冰场小旋风开始整活儿网友笑评大靖在努力尝试一种全新的花样滑冰过分啦禁止专业选同闺蜜再聚首!姚迪启程去意大利帮朱婷,网友女排队长冠军稳了新赛季的全国女排联赛已经结束了,这个赛季的全国女排联赛天津女排的发挥非常出色,最终她们在决赛中击败了上海队,夺得了联赛的冠军。对天津女排的姑娘们来说,接下来她们需要好好的规划一下自网友晒图定制行程卡数字藏品我想出去旅游,行程卡同意啦烟火气的生活终于回来了终于告别被健康码行程卡所支配的生活就像是不停打铃的闹钟一句再也不见彻底解脱的爽感即刻到位随着健康码行程卡的陆续下线大河报豫视频用数字创意的形式发行了健康码行程来袭!足球赛事情报参考1。意甲尤文主力中卫伤愈火线回归尤文图斯主力中后卫布雷默在因伤缺席了缺席了球队上一轮和乌迪内斯的比赛,不过本场比赛他已经回到了尤文图斯的大名单,可以出战本场比赛。布雷默本赛季加盟尤