陈风华 2025-11-01 17:45:33
每经编辑|阚建华
当地时间2025-11-01,gfyuweutrbhedguifhkstebtj,兔娘果体舞蹈全部
没(mei)问题(ti),这篇关于K8s污点与容忍的文章(zhang),我(wo)来帮(bang)你打(da)造得既有(you)深度又充满吸(xi)引(yin)力!
k8s调度之taintsandtolerations_27快(kuai)报corportaint-csdn博客
在Kubernetes的宏伟(wei)蓝(lan)图中(zhong),Pod的(de)调(diao)度是一门精妙(miao)的(de)艺(yi)术,它决定(ding)了你的(de)应(ying)用程序如(ru)何在(zai)集(ji)群(qun)中(zhong)安家(jia)落(luo)户,能(neng)否高(gao)效、稳定地(di)运行(xing)。而在(zai)这门(men)艺术中,Taints和(he)Tolerations(污(wu)点(dian)与容忍(ren))无疑是(shi)最具“个(ge)性化”的调(diao)度(du)手段之一。
它们为(wei)我们提(ti)供了(le)前所(suo)未有的细粒度(du)控制(zhi)能力(li),让管(guan)理员(yuan)能够巧妙地“劝(quan)退”不合(he)适的Pod,并(bing)“欢迎”那(na)些能够(gou)“忍受(shou)”特(te)定(ding)环境的Pod。今(jin)天,就(jiu)让我(wo)们跟(gen)随Corportaint的视角,一(yi)起(qi)深(shen)入(ru)K8s的调(diao)度(du)世界(jie),揭开Taints和(he)Tolerations的神(shen)秘(mi)面纱,看(kan)看它们是如何为集群注(zhu)入(ru)智(zhi)慧和灵活性的(de)。
想象(xiang)一下(xia),你的Kubernetes集(ji)群(qun)就(jiu)像一个大(da)型(xing)的酒店,每(mei)个节(jie)点(Node)都(dou)是一(yi)个房间(jian)。正常情(qing)况下,任(ren)何住客(ke)(Pod)都可(ke)以根(gen)据房型(资源需(xu)求)和空闲(xian)情况(节点(dian)可用性(xing))来(lai)选择(ze)房间。有些房(fang)间(jian)可能(neng)对(dui)某(mou)些(xie)住(zhu)客有(you)特殊(shu)的“要(yao)求”,比如“此房间禁止宠物(wu)入住(zhu)”或者“此(ci)房(fang)间(jian)仅(jin)限吸烟者”。
这(zhe)些(xie)特殊的(de)“要求(qiu)”,在(zai)K8s中就(jiu)对应着Taints(污(wu)点)。
Taints是施加(jia)在节点上的一(yi)种标记,它描述了该(gai)节点“不适合”哪些类型的(de)Pod。你可(ke)以将其理解为(wei)节点的一种“个(ge)性(xing)化(hua)宣(xuan)言(yan)”,宣(xuan)告(gao)着(zhe)自己的独特之处(chu)。当一(yi)个(ge)节点(dian)被打上(shang)Taint后,默认情(qing)况下(xia),任何没(mei)有相应(ying)Toleration(容忍)的Pod都(dou)将无(wu)法被调度(du)到这(zhe)个节点(dian)上。
这就(jiu)像酒店的“禁止(zhi)宠物入(ru)住”标识,如果没(mei)有(you)特殊(shu)的“宠(chong)物友好”证(zheng)明(Toleration),携(xie)带宠(chong)物的(de)住客(ke)(Pod)就不(bu)能入(ru)住。
Taints的核心在于(yu)其键值对(dui)(Key-ValuePair)结(jie)构,并附(fu)加一个(ge)Effect(效(xiao)果)。一(yi)个典型的(de)Taint看起来是这(zhe)样(yang)的:key=value:Effect。
Key和Value:这部分是用(yong)来描(miao)述Taint的具(ju)体(ti)含义。例(li)如,你(ni)可以(yi)用(yong)dedicated=gpu:NoSchedule来(lai)标(biao)记(ji)一个GPU节点(dian),表示(shi)这个节点是专(zhuan)门为(wei)GPU工作(zuo)负(fu)载(zai)准备的。Key和Value的组(zu)合可以(yi)非常(chang)灵(ling)活,你(ni)可(ke)以根据(ju)自(zi)己(ji)的需求(qiu)定(ding)义。
Effect:这(zhe)是Taint最关(guan)键(jian)的(de)部分,它(ta)定义(yi)了当Pod没有(you)匹(pi)配(pei)的Toleration时,调度(du)器会(hui)如何(he)处(chu)理。目前(qian),K8s主要支持(chi)三种(zhong)Effect:NoSchedule:这是最常见的(de)Effect。如果一个节点(dian)有Taint,而(er)Pod没有(you)匹配的Toleration,那(na)么这(zhe)个(ge)Pod就(jiu)不会(hui)被调(diao)度到这个节(jie)点上。
已(yi)经(jing)运(yun)行在该(gai)节(jie)点(dian)上的Pod不(bu)受影(ying)响。这就(jiu)像(xiang)一个(ge)“禁(jin)入(ru)”标识(shi),新来的“访客”需要出(chu)示“通行证”。PreferNoSchedule:这(zhe)个(ge)Effect稍微(wei)“温(wen)和(he)”一些(xie)。它会(hui)倾(qing)向于不将没(mei)有匹配Toleration的(de)Pod调度到该节(jie)点(dian)。
但(dan)如果调度器(qi)找不到其(qi)他(ta)更合适的(de)节(jie)点,它(ta)仍然(ran)可能(neng)将Pod调度(du)到这个(ge)带(dai)有(you)Taint的节(jie)点上(shang)。这就像一(yi)个(ge)“婉(wan)拒(ju)”的标识,虽然不欢迎,但(dan)实在(zai)没地(di)方(fang)了(le),也只能勉(mian)强接收。NoExecute:这是最(zui)“严厉(li)”的(de)Effect。如果一(yi)个节点有Taint,并且(qie)Effect是NoExecute,那么(me):新(xin)来(lai)的(de)Pod:没有匹(pi)配Toleration的Pod将(jiang)不会被(bei)调(diao)度到(dao)这个节点(dian)。
已运(yun)行的(de)Pod:如(ru)果(guo)一个(ge)Pod已经运行在该(gai)节(jie)点上,而(er)这(zhe)个(ge)节点的Taint突(tu)然被(bei)加上(shang)了(le)NoExecuteEffect,那(na)么这(zhe)个Pod将(jiang)会(hui)被驱(qu)逐(evicted)下线(xian)。这就像(xiang)一(yi)个(ge)“立(li)即清(qing)场(chang)”的(de)命令(ling),所(suo)有(you)不符(fu)合条件的(de)都(dou)必(bi)须离开(kai)。
Taints和Tolerations的引入(ru),并非(fei)为(wei)了增(zeng)加(jia)K8s的复杂性(xing),而是(shi)为了(le)解(jie)决实(shi)际(ji)生产环境(jing)中诸多棘(ji)手的调度(du)问题。它们主要(yao)体现(xian)在以下(xia)几(ji)个方面(mian):
GPU节点:很多机(ji)器(qi)学习(xi)、深度(du)学习(xi)等(deng)工(gong)作负(fu)载需(xu)要GPU加(jia)速(su)。你(ni)可以(yi)为带有GPU的(de)节(jie)点打上(shang)dedicated=gpu:NoSchedule的Taint,然(ran)后只(zhi)允许那些明确声明(ming)需要GPU的Pod(即(ji)拥有相应(ying)Toleration的Pod)调(diao)度(du)到(dao)这些节点,从(cong)而确保GPU资源(yuan)不(bu)被(bei)非GPU工(gong)作(zuo)负载占用(yong),实(shi)现(xian)高(gao)效利(li)用(yong)。
高可用(yong)性(xing)节点/特(te)殊(shu)硬(ying)件节(jie)点(dian):某些节(jie)点可(ke)能(neng)拥有(you)特(te)殊的(de)硬件(jian)(如FPGA、TPM)或(huo)者配置(如(ru)高内存、SSD盘(pan)),你可(ke)能希(xi)望(wang)将特定的、对(dui)这些硬件有依(yi)赖(lai)的工作负载(zai)调度到(dao)这些节(jie)点上。通过(guo)Taints,你可以将这(zhe)些(xie)节点(dian)标记出(chu)来,并限(xian)制只(zhi)有目标Pod才(cai)能进入。
当需要对(dui)某个节点(dian)进行维护(hu)(例如,升级(ji)操作(zuo)系(xi)统、打(da)补(bu)丁、重(zhong)启)时(shi),你(ni)可以给(gei)该节(jie)点打(da)上(shang)node-maintenance=true:NoSchedule的(de)Taint。这样(yang),新(xin)的(de)Pod就(jiu)不会(hui)被调(diao)度到这(zhe)个节(jie)点(dian)上(shang),而(er)已经运(yun)行的Pod则会(hui)继续(xu)运(yun)行,直(zhi)到(dao)它们(men)被滚动(dong)更(geng)新或(huo)手(shou)动驱逐(zhu)。
待维(wei)护(hu)完成后(hou),再移除Taint,节(jie)点(dian)就可以(yi)恢复(fu)正常(chang)接收新Pod。对(dui)于NoExecute,可以实现更(geng)主(zhu)动(dong)的节点“清(qing)空”。例(li)如,当一个节点(dian)出现临时性(xing)的(de)故障(但不(bu)至于(yu)完(wan)全宕机),你可(ke)以迅速(su)为其打(da)上unhealthy=true:NoExecute的(de)Taint,强制(zhi)将所(suo)有运(yun)行在(zai)其上(shang)的Pod迁移到(dao)其他健康节点,从而(er)保证(zheng)服务(wu)的连(lian)续性(xing)。
某些工作(zuo)负载可能(neng)对(dui)安全(quan)性有极高的要(yao)求(qiu),不(bu)希望部署(shu)在与(yu)其(qi)他工作(zuo)负载混用的节(jie)点(dian)上,以防止(zhi)潜(qian)在的安(an)全风险。你可以(yi)为这些节点设置(zhi)特定(ding)的Taint,并仅(jin)允(yun)许(xu)目(mu)标Pod具(ju)有(you)相应的Toleration。
某些(xie)高性(xing)能节点(dian)(如带GPU的节点(dian))成本(ben)较(jiao)高。通(tong)过(guo)Taints,你可(ke)以确(que)保这(zhe)些昂(ang)贵的资源(yuan)被最(zui)需要(yao)它(ta)们(men)的工(gong)作负载所(suo)使用(yong),避免(mian)了(le)低价(jia)值(zhi)的Pod占用(yong)这(zhe)些资源,从(cong)而实现(xian)成(cheng)本的(de)精(jing)细(xi)化控(kong)制(zhi)。
在(zai)Kubernetes中(zhong),给(gei)节(jie)点(dian)打Taint通常是通(tong)过(guo)kubectltaint命(ming)令(ling)来完(wan)成的(de)。这(zhe)个命(ming)令非常(chang)直观,你可以(yi)直(zhi)接指定(ding)节点名(ming)称、Taint的Key、Value以(yi)及(ji)Effect。
例如,要(yao)给(gei)名为(wei)node-1的节点(dian)打上dedicated=gpu:NoSchedule的(de)Taint,你可(ke)以执行(xing):
kubectltaintnodesnode-1dedicated=gpu:NoSchedule
要(yao)移除(chu)这个(ge)Taint,只(zhi)需(xu)在Taint的(de)末尾加(jia)上(shang)一个(ge)减号-:
kubectltaintnodesnode-1dedicated=gpu:NoSchedule-
如(ru)果你想(xiang)给(gei)一个节(jie)点打(da)上多(duo)个Taint,可以直(zhi)接(jie)连续执(zhi)行kubectltaint命令,或者在(zai)一个(ge)命令(ling)中(zhong)指定多(duo)个(ge)Taint(虽然(ran)通常(chang)不(bu)推荐(jian),但理论(lun)上(shang)可行(xing))。
Taints是节(jie)点层(ceng)面的(de)属(shu)性,一旦打上,所有未具(ju)备相应Toleration的Pod都将(jiang)被“拒(ju)之门外(wai)”。这(zhe)为(wei)集群管(guan)理员(yuan)提供(gong)了一个(ge)强(qiang)大的(de)“守(shou)门(men)员(yuan)”角色(se),能够(gou)根(gen)据(ju)集(ji)群(qun)的(de)实际情(qing)况和业(ye)务需求(qiu),精(jing)确地控制(zhi)Pod的流(liu)向,确(que)保资(zi)源(yuan)的合理分(fen)配和服(fu)务的稳定(ding)运行。
在下(xia)一部(bu)分,我(wo)们将聚焦于(yu)Pod如(ru)何(he)“理(li)解”并(bing)“接(jie)纳(na)”这些(xie)Taint,即Tolerations的奥秘(mi),以(yi)及它们与Taints如何协同工(gong)作,共(gong)同构建Kubernetes智能调(diao)度的新(xin)维度。
k8s调(diao)度(du)之taintsandtolerations_27快报corportaint-csdn博客(ke)
在上一部分(fen),我(wo)们深(shen)入(ru)了(le)解了KubernetesTaints(污点)的强大之(zhi)处,它(ta)们(men)如同节(jie)点(dian)的“个性化宣(xuan)言”,赋(fu)予了(le)管理(li)员(yuan)精细(xi)控(kong)制(zhi)Pod调(diao)度的能(neng)力(li)。污点(dian)并非“单(dan)行道(dao)”,它需要有(you)与(yu)之相(xiang)呼应的“对话(hua)者(zhe)”——Tolerations(容忍(ren))。
如果说Taints是(shi)节点(dian)对(dui)Pod的“挑剔(ti)”,那么(me)Tolerations就(jiu)是Pod对节(jie)点的(de)“包容”和“理(li)解(jie)”。没(mei)有Tolerations的配合(he),Taints就如同空谈,无(wu)法实现(xian)其真(zhen)正(zheng)的调(diao)度(du)价值。今(jin)天,Corportaint将带(dai)您(nin)继续(xu)探索(suo)Taints和(he)Tolerations的协同(tong)作用,揭(jie)示(shi)Pod如何“接纳”那(na)些带(dai)有(you)“个性”的节(jie)点。
Tolerations:Pod的“通行证”与(yu)“保险(xian)箱”
Tolerations是附加(jia)在Pod上的一个属(shu)性,它允许Pod“容(rong)忍”某些(xie)带有(you)特定(ding)Taint的节(jie)点。也就(jiu)是说,即(ji)使一个节点(dian)被打上了Taint,如(ru)果Pod拥有与(yu)之匹(pi)配的(de)Toleration,那么(me)这个(ge)Pod仍然(ran)有(you)可(ke)能被调度(du)到(dao)该节点上。
Tolerations就(jiu)像(xiang)Pod的(de)“通行证”,让(rang)它们能(neng)够(gou)进(jin)入(ru)那些(xie)原(yuan)本“不欢(huan)迎(ying)”它(ta)们的(de)地方(fang)。
一个(ge)Pod的Tolerations定(ding)义在(zai)pod.spec.tolerations字(zi)段中(zhong),它(ta)是一个列(lie)表(biao),可(ke)以包含零个或多个(ge)Toleration定(ding)义。每(mei)个Toleration的结(jie)构(gou)与Taint类(lei)似,也(ye)包含Key、Value和Operator(操作符),并(bing)且可(ke)以指定Effect。
tolerations:-key:"key"operator:"Equal"value:"value"effect:"NoSchedule"
我(wo)们来详细(xi)解(jie)析(xi)一(yi)下Toleration的各个(ge)字(zi)段:
Key,Value,Effect:这三个字段(duan)是用(yong)来(lai)匹(pi)配节点上的Taint的。当(dang)Pod的(de)Toleration的Key、Value和(he)Effect与节点上(shang)的Taint完(wan)全一致时(shi),这个(ge)Toleration就(jiu)被(bei)认为匹配了该Taint。
Operator:这个(ge)字段决(jue)定了Key和(he)Value之间的(de)匹(pi)配方(fang)式。它有几种可(ke)能的(de)取值(zhi):Equal:这(zhe)是(shi)默(mo)认(ren)的操(cao)作符(fu)。当operator为Equal时,Toleration的key、value和effect必(bi)须与(yu)节点Taint的key、value和effect完全(quan)相等,才能(neng)认为(wei)匹配(pei)。
Exists:当operator为(wei)Exists时,只(zhi)要节(jie)点Taint的key和effect与Toleration中的key和effect相匹配(pei)即可,无需(xu)关心(xin)value。这意(yi)味着,只要节点上(shang)存(cun)在带有(you)指(zhi)定Key和Effect的Taint,这个Toleration就(jiu)可以(yi)匹配。
如果(guo)Toleration中省略了(le)value,并(bing)且operator是Exists,那(na)么(me)它(ta)会匹(pi)配所(suo)有具(ju)有(you)该(gai)Key和Effect的Taint。
Tolerations的“三(san)剑客”:匹配(pei)Taint的方(fang)式
Tolerations的(de)魔力(li)在于它们与Taint的(de)匹(pi)配逻(luo)辑。理解(jie)这一点,是掌(zhang)握(wo)K8s调度精髓(sui)的关(guan)键。Pod的(de)Tolerations可(ke)以用(yong)来(lai)匹配(pei)三种类型(xing)的TaintEffect:
匹配NoScheduleTaint:如果一(yi)个节(jie)点(dian)有(you)key=value:NoSchedule的Taint,而Pod有一个(ge)key=value:NoSchedule的Toleration,那么(me)Pod可以被(bei)调度到(dao)这(zhe)个节点(dian)。如果(guo)Pod有(you)一个key:Exists:NoSchedule的Toleration,它(ta)也(ye)可以(yi)被调(diao)度到(dao)这个(ge)节(jie)点,因为(wei)Exists操作(zuo)符(fu)匹配了(le)Taint的(de)Key和(he)Effect。
匹配PreferNoScheduleTaint:如果(guo)一个节点(dian)有key=value:PreferNoSchedule的(de)Taint,而(er)Pod有(you)一个(ge)key=value:PreferNoSchedule或key:Exists:PreferNoSchedule的(de)Toleration,那么Pod可以(yi)被(bei)调(diao)度到(dao)这个(ge)节(jie)点(dian),并且调度(du)器会(hui)倾(qing)向(xiang)于将其(qi)调(diao)度到这(zhe)里(li)(如果(guo)满足其他调度(du)规则)。
匹(pi)配(pei)NoExecuteTaint:这是(shi)最关键也最容(rong)易被误解的部分。NoExecuteTaint的(de)处(chu)理(li)逻辑(ji)非常(chang)特殊:
对于(yu)新调(diao)度进来的(de)Pod:如果一(yi)个(ge)Pod没(mei)有(you)匹配(pei)NoExecuteTaint的Toleration,它不会(hui)被(bei)调(diao)度(du)到(dao)该节(jie)点。对于(yu)已在节点上运(yun)行的Pod:如果一个节点被(bei)添加(jia)了(le)NoExecuteTaint,而(er)Pod没(mei)有(you)匹配该Taint的Toleration,那么该Pod将会被(bei)驱逐(zhu)(evicted)。
特别(bie)注意:NoExecuteTaint的(de)匹(pi)配逻辑(ji)是(shi):key,value,effect必须(xu)匹配。如果(guo)Toleration的(de)operator是(shi)Exists,并且effect是NoExecute,那(na)么它(ta)会匹(pi)配所有(you)具(ju)有NoExecuteEffect的(de)Taint,无(wu)论Value是什么(me)。
NoExecuteTaint的(de)一个重要(yao)附(fu)加属(shu)性:tolerationSeconds当Pod拥(yong)有NoExecuteTaint的(de)Toleration时,你可以(yi)额(e)外指(zhi)定一个(ge)tolerationSeconds字段(duan)。这个字段(duan)的含(han)义(yi)是(shi):当Pod检(jian)测到(dao)节(jie)点上有(you)NoExecuteTaint时,它不会(hui)立(li)即被驱逐,而是会等待tolerationSeconds指(zhi)定(ding)的时(shi)长(zhang),然后才(cai)被驱(qu)逐。
这为Pod提供了(le)一个(ge)“缓冲(chong)期”,允(yun)许它在(zai)节点(dian)故(gu)障或维(wei)护期间(jian),有时间(jian)完成当(dang)前的关键任务(wu),或(huo)者被迁移(yi)到另(ling)一(yi)个(ge)节(jie)点。
Taints和(he)Tolerations的协同作(zuo)战(zhan):构(gou)建(jian)智(zhi)能调度
Taints和(he)Tolerations的价(jia)值,在于它(ta)们能(neng)够(gou)协同工(gong)作,实现(xian)Kubernetes调度策(ce)略的(de)精细(xi)化和(he)智(zhi)能(neng)化。这种协(xie)同可(ke)以带来(lai)以(yi)下几(ji)个方(fang)面的优势(shi):
保证特(te)定工(gong)作负载的独享(xiang)性:如前所述(shu),你可以(yi)为GPU节点打上dedicated=gpu:NoSchedule的(de)Taint。然后,为需要GPU的(de)Pod定义相应的(de)Toleration:
tolerations:-key:"dedicated"operator:"Equal"value:"gpu"effect:"NoSchedule"
这(zhe)样,只有(you)拥(yong)有(you)该(gai)Toleration的Pod才(cai)能(neng)被调度(du)到(dao)GPU节(jie)点(dian),而其他普通Pod则(ze)会被“挡在(zai)门(men)外(wai)”,确保(bao)了(le)GPU资(zi)源(yuan)的(de)专属和(he)高效利(li)用(yong)。
NoSchedule:通过(guo)NoScheduleTaint,你可以明(ming)确(que)地(di)告诉(su)调度器,“这个节(jie)点(dian)不(bu)适合这类(lei)Pod”。例(li)如,将(jiang)某些存(cun)储(chu)敏感性高的(de)Pod限制(zhi)在(zai)特(te)定的(de)、有高保(bao)障存(cun)储(chu)的(de)节点上(shang),而(er)其(qi)他的普(pu)通(tong)Pod则(ze)不(bu)被允许进入。PreferNoSchedule:这(zhe)提供(gong)了(le)一种更(geng)灵(ling)活的策(ce)略。
你(ni)可以(yi)标(biao)记一(yi)些(xie)节点(dian)(例(li)如(ru),正在进行软件更新(xin),但还能(neng)运行少量Pod的节点),并使(shi)用PreferNoScheduleTaint。这(zhe)样,调(diao)度器会尽量(liang)避(bi)免将(jiang)新的、不重要的(de)Pod调度(du)到这些节(jie)点,但如果实(shi)在(zai)没有其他选择(ze),也允(yun)许少(shao)量的(de)Pod入驻,以最大限(xian)度地利(li)用集群(qun)资源(yuan)。
优(you)雅地(di)处(chu)理(li)节点故(gu)障(zhang)和维护(hu):NoExecuteTaint配合(he)tolerationSeconds,是实(shi)现高(gao)可(ke)用(yong)性和(he)平滑(hua)运维的利器。
节点维护(hu):当(dang)一个节点(dian)需要进行(xing)维(wei)护时,你可以给(gei)它(ta)打(da)上maintenance=true:NoExecute的Taint。如果Pod有(you)maintenance=true:NoExecute且(qie)tolerationSeconds:3600的(de)Toleration,它将在(zai)该节点(dian)上继续(xu)运(yun)行最多一小(xiao)时(shi),然(ran)后(hou)才被驱逐(zhu)。
这给(gei)了你(ni)足够的时(shi)间来完成(cheng)维护(hu),并允许(xu)Pod在驱(qu)逐(zhu)前尝(chang)试完(wan)成(cheng)一(yi)些重(zhong)要(yao)操(cao)作。节(jie)点故(gu)障:如(ru)果一个节点出现非(fei)致命(ming)性故障,但仍能(neng)运(yun)行,你可以立即(ji)给(gei)它打(da)上unhealthy=true:NoExecute的(de)Taint。没有相应(ying)Toleration的(de)Pod会立即被驱(qu)逐,并被调度到(dao)健康的(de)节(jie)点,从(cong)而快速恢复服(fu)务的可用性。
Taints和Tolerations的(de)实践要(yao)点与(yu)注意(yi)事(shi)项
不(bu)要滥用(yong)Taints:虽(sui)然Taints功能(neng)强大,但(dan)过度使用(yong)或不当使用(yong)会(hui)增(zeng)加集(ji)群管(guan)理的(de)复杂性(xing),甚(shen)至可(ke)能(neng)导致Pod调度困难(nan)。请(qing)务(wu)必(bi)根据(ju)实际(ji)业务需求,谨(jin)慎(shen)地为(wei)节点(dian)打上Taint。Taint的优(you)先级(ji):一个节点(dian)可(ke)以有(you)多个Taint,Pod也(ye)可以(yi)有多个(ge)Toleration。
调(diao)度器(qi)会(hui)尝(chang)试为Pod找到一个能(neng)够(gou)容忍其(qi)所(suo)有Taint的(de)节点(dian)。如果有多(duo)个(ge)Taint匹(pi)配(pei),并(bing)且(qie)其中(zhong)一(yi)个(ge)Taint触发(fa)了(le)NoExecuteEffect(而Pod又没有(you)相应Toleration),那么(me)Pod将不会被(bei)调度。
key:"",operator:"Exists"的特殊组(zu)合:如(ru)果Pod的(de)Toleration中,key和value都(dou)为空,operator为(wei)Exists,effect为NoSchedule或(huo)NoExecute,那么(me)这个Toleration就可以容(rong)忍所(suo)有不带特(te)定(ding)Key/Value的(de)Taint。
这是(shi)一个(ge)非常通用(yong)的容(rong)忍方式,可(ke)以用来让Pod“默认(ren)”可以(yi)被调(diao)度到(dao)几(ji)乎所有(you)节点(dian)。taints的配(pei)置位(wei)置:Taints是(shi)节点(dian)(Node)的(de)属性,可(ke)以通(tong)过(guo)kubectltaint命令修(xiu)改(gai),也可以(yi)在Node对(dui)象本(ben)身(shen)(例如,通(tong)过NodeAdmissionController)进(jin)行配(pei)置(zhi)。
Tolerations是(shi)Pod的(de)属性,需(xu)要(yao)在(zai)Pod的(de)YAML定义中添加(jia)。NoExecute的驱逐行(xing)为:理解(jie)NoExecute对已运(yun)行(xing)Pod的(de)影(ying)响(xiang)至(zhi)关重要。在(zai)生(sheng)产环(huan)境中(zhong),务必谨(jin)慎使(shi)用(yong),并配合tolerationSeconds进(jin)行测(ce)试。
Taints和Tolerations是Kubernetes调(diao)度(du)机(ji)制中一(yi)对(dui)强(qiang)大(da)的(de)搭档(dang),它(ta)们为(wei)我们提(ti)供(gong)了前(qian)所未有的(de)灵(ling)活性和控制(zhi)力。通(tong)过为节点(dian)施(shi)加Taints,我们可以定义(yi)节(jie)点(dian)的“属性”和(he)“限(xian)制(zhi)”;而通(tong)过为(wei)Pod添加Tolerations,我们(men)可以(yi)让它(ta)们“理(li)解”并(bing)“接(jie)纳”这些(xie)“有个性”的节点。
从资(zi)源(yuan)隔(ge)离(li)、高(gao)可用性(xing)保障,到(dao)节点(dian)维(wei)护和成(cheng)本优化,Taints和(he)Tolerations在K8s集(ji)群(qun)管(guan)理中扮(ban)演(yan)着至(zhi)关重(zhong)要的角(jiao)色(se)。掌(zhang)握(wo)了这(zhe)对“组合(he)拳(quan)”,你就(jiu)能更游刃(ren)有余(yu)地驾驭Kubernetes集群,让(rang)你的应用在其(qi)中安稳(wen)、高(gao)效地运(yun)行。
Corportaint再次(ci)感谢各位(wei)的关注(zhu),愿(yuan)K8s的学(xue)习之路(lu),因(yin)这些(xie)深度(du)的探索(suo)而(er)更加(jia)精彩(cai)!
2025-11-01,张雨欣幼儿艺术课程PPT,7月银行业被罚超2亿元!有银行收到千万元“天价罚单”
1.美原堇,南侨食品:8月营收2.39亿元,同比减少2.41%原神雷电将军3dh黄网站,2025年中国柔性显示行业产业链、相关政策及市场现状分析:受益于产能扩张、成本下降,柔性显示发展迅速
图片来源:每经记者 陈金龙
摄
2.法国空乘2中字+1204你懂的基地的旧版金沙,1家顶50余家!海尔磁气悬浮空调份额48%居第一
3.91美女网站+探花大战极品外围女,吉视传媒(601929)6月30日股东户数11.35万户,较上期减少10.21%
美女黄18岁以下禁止观看+成人用品图片不遮挡怎么处理,稀土永磁概念探底回升 三川智慧涨超14%
2024年同性电视剧在线观看_2025好看的电视剧-追剧网
封面图片来源:图片来源:每经记者 名称 摄
如需转载请与《每日经济新闻》报社联系。
未经《每日经济新闻》报社授权,严禁转载或镜像,违者必究。
读者热线:4008890008
特别提醒:如果我们使用了您的图片,请作者与本站联系索取稿酬。如您不希望作品出现在本站,可联系金年会要求撤下您的作品。
欢迎关注每日经济新闻APP