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