00:00
在刚才内容中,我们讲到了影响pod的调度中的节点亲和性,它分成硬亲和性,还有这个叫软亲和性,然后在这个亲和性中呢,其实还有一个它叫做反亲和性。给各位来做个说明。那什么叫反亲和性能给大家说一下啊,就是现在在里边呢,有这么一个特点,我把这个先写出来啊,叫做反。亲和性也就说在这操作中啊,这里边有运算符,咱刚才用的是不是阴影,那我做反亲和性,也就是它不像这些节点中进行这个调度,那咱可以用这个叫not in,或者这个叫not,这个exist,用它做到这个反亲和性,跟亲和性正好相反,这是咱们刚才说到的。然后这个说完之后,下面给大家继续介绍影响pod调度的另外一个属性,那这个是什么呢?我在里边写一下就是。
01:04
影响pod。调度它里边的另外这么一个东西,这东西叫做污点,还有叫污点。容忍,这是里边一个专有名词,污点,还有这个污点容忍,那这个什么意思,给个未来详细说明一下啊,首先我们看第一个。就是他一个。基本的介绍。刚才我们用到这个叫no letter和这个node affect,就是节点选择器啊,Node。还有这个叫no a fair。然后这两个东西呢,其实他们都是啊,做这么一个事情,就是把我们的pod根据里边的配置。调度到你的某些节点上面去,而这个node select也好,Node a fight也好,它们都是pod里边的属性,就是我们在这个调度的时候进行实现这个过程,这是咱们刚才提到的,而现在我们说这个叫污点。
02:16
污点里边有个单词,它叫做T。然后这表示污点。然后这个污点呢,跟他们就完全不一样,就是污点里面这个节点它不做普通的这种分配调度,做一些特别处理,而这个污点它本身并不是pod中的属性,而它是什么?是你这个节点里边的属性,就是这个是从不同的维度去考虑这个影响坡的调度。Node select no f是pod调度到某一节点,是里边的属性在调度值实现,而这个污点是节点不做普通的分析调度,它是节点中的属性,那这个不做普通分析调度,咱怎么来理解,给各位说一下啊,就是我们说的。
03:07
第二部分就是它的一个应用的一个场景,给大家介绍一下啊,比如说我现在我简单画个图。比如现在呢,我这里边有很多的节点,然后这里边有个调度器,里边肯定有我们的pod pod呢做这样的调度,那这个时候呢,比如说我现在这里边,咱对这个节点也做过分组。假如我这两分组就是咱们那个DV的这个环境,比如现在我做个约定,让这个DV这个节点只能注专业的就是某些这个IP进行分配,比如说IP是172.1.1.1~1.1.5的这IP在里面做分配,所以它可以做专用的节点,或者说我们可以做一些硬件的处理,比如说我这个硬盘是那个固态硬盘,然后做处理,或者基于这个叫污点的驱逐,就是它里边。
04:03
不分配,然后分配到它以外的节点。比如现在这是一。这是二。然后这是三,当我做这个叫污点驱逐什么意思?一二不做分配,它都统一分到三的节点中,那咱一会儿会把效果演示出来,所以这是它的几个应用场景,我在里边给大家写一下。首先第一个场景做这个专用的一个。节点,比如说咱们针对某些特定用户做这个分配,然后第二个就是配备,就是你一些特定的这个硬件的节点,比如我们都做固态硬盘,然后里边做特殊分配。然后第三个就是基于这个探。它里边那个驱逐就是它本身不做分配,而它分配到它以外的进店中去。比如咱有NOTE1 note2 note1里边加去除,然后它都放到NOTE2中做分配,这是里边的最基本的应用场景,各位先知道,然后咱们马上通过效果给大家演示一下,所以这个叫污点,就是你理解为污点,它不做普通的分配,它针对一些特定场景进行分配。
05:19
那这个怎么来做,给各位来说明一下,这是咱的第三个。咱们做一个具体的这么一个演示,那怎么演示呢?比如说咱们首先啊,我们先说几个命令啊,第一个命令就是我可以查看一下我当前的节点里边的这个污点的一个情况,可以做个查看,那怎么查看给大家演示一下,比如我现在在这个master节点中,咱用这个肯定是库ctl。加上一个叫。CD,然后加上你的node,再加上当前节点的名称,比如我叫K8S这个。
06:02
Master后面加上一个GP,加上一个叫TT,这样的话能查看到当前这个节点里边污点的一个情况,用这个命令我们做这么一个查看,所以这是第一个命令。各位的知道啊,然后查看之后,我们看到里边有些输入信息,就证明咱们当前污点是这个叫no schedule,然后这是污点中啊,它里边一个特点就是污点中呢,其实它的值一共有三个。给大家写一下啊,就是我们的第二部分。这个污点里边的这个值主要有这么三个。第一个值,就咱看到的这个,它叫做。No。筛掉。这是第一个啊,我先写出来,然后都做解释,第二个叫这个pro no schedule。No shading。
07:03
这是第二个,然后还有第三个叫这个no execu。这是它的里边的三个值,那这三个值都是什么意思,给各位说一下啊,首先第一个值叫no schedule,它就表示啊这个节点一定。不被。调度,比如说咱们为某个节点设成这个no筛掉,那这节点肯定不会被调度到,这是第一个,第二个叫pro no筛掉,那他表示啊,这个节点就是尽量。啊,就是尽量会。被调度啊,尽量。不被。调度,但是它也有被调度的几率,跟咱之前说那个软亲和性有点类似,这一定不会调度,这尽量不会调度,但是也有被调度的几率,然后里边还有第三个叫这个no exe,它就表示。
08:05
不会。调度。但是呢,并且他还会做件事情,就是会驱逐。到你的node的。已有的这个。Pod什么意思呢?就是现在你生成这个值之后,它里边当节节点不会调度,另外它会把节点切入到你的其他节点中去,比如我NOTE1啊,去入到NO2里面去,这个叫no ex,所以这是节点中的三个情况,No Sha proper no Sha,还有这个no ex secret啊,这是里边的这么一个特点。然后除了这个之外,比如现在我想为我这个节点就是打一个误点,那里边有一个机关命令,比如说咱们这里边给大家把这效果咱演示一下啊,那这个命令我先把这个格式写出来,然后咱们把最终效果演示一下。
09:02
就是第二个我们为节点给它添加上一个污点,或者给它打个污点,那怎么做里面一个命令啊,我先把结构写一下,叫CU。Ctl。然后里边呢,加一个叫探。加上node,还有你那个就是node节点那个主机名称,比如我们叫NODE1或者什么NODE2啊,这个名称后面加上你的key,还有你的这个。Y掉,然后在后面加个冒号。在里边就加上咱们上面那污点中的三个值。啊,就是污点的。三个值,比如你是no shadow还是什么no X等等,这是will的节点上添加误点,咱们用这个命令可以做到,所以这个啊是一些基本命令介绍,那这个介绍之后,下面我就把这效果给大家,咱们就来演示一下啊,看特点。
10:04
包括各位看哈,就是刚才我这个master节点中是不是叫no筛掉,因为这个节点它肯定不会被调度到,它真正调度是不是在NODE1NO2中做到,所以它里边默认值就这个值叫no schedule,那比如说咱再看一下这个叫NODE1这个节点。NOTE1你看里边是不是就没有,包括比如说咱再看一下这个NOTE2是不是也没有这个五点啊,因为它默认是没有,只有master默认有这么一五点,所以这个啊是咱刚才看的特点,然后下面呢,给各位我来做这么一个演示,咱看一下效果啊。比如说现在呢,我这里边我先做一个基本的一个查看啊,再来一个酷。Ctl。POS目前里边是没有东西,比如现在我用deployment方式创建这么一些pod,咱来创建啊。CUCTL。
11:00
我们叫这个deep play。比如这个我叫web,然后这个叫image,等于这个。Inex啊,咱给它绘制车,把这创建,创建之后我们做一个查看,因为它里边有这个等待啊,比如咱来一个杠O来一个Y的,大家看它分配到是不是这个no的一进点中去,比如咱们现在给他多创建几个。来一个酷。Ctl加上这个叫啊。然后加上一个deployment。等于这个web啊,然后叫杠杠Rep replace repl CS,比如咱来五个,然后现在回车,咱们通过这命令再看一下啊这个命令。大家看啊,因为目前我们没有加五点,所以它里边会给你调度到NODE1或者NODE2上,是不是可里边给你分别调到不同的这个镜中去啊,但是它其中有时间,因为它会拉取镜像,就是最终这些可能都会是一个running定状态啊,咱需要多等一会儿,所以现在你看到它会给你放到NODE1或者NODE2上,因为咱们没有加污点,但我现在比如我加个污点可以把它的效果。
12:23
做一下改变,那咱们给他改变一下啊,比如说你看现在都running这么做没有错。我现在呢,把这些pod先给它删掉,为了明显咱重新做演示。Ctl delete,我来一个deployment。然后这里边,比如说山这个叫。Web啊,咱给它删掉,然后我们再看一下。看这个啊,就这个POS。打开里边。目前应该是已经删掉了,然后删掉之后呢,按照我刚才说的,我现在就给它打上这么一个污点,然后咱们做个测试,那打污点方式刚才咱们说过了啊,我们就用刚才我说的命令括CTLTT给那个,比如说给NODE1咱们加五点,咱来做个测试啊。
13:15
我先来个清除。Ctl。T,然后加上一个叫node,加上咱们这个叫K8S node1,然后里边来一个K,就这K是你随便起个名字,比如我还是叫这个呃,因为这个肉,然后等于这个值,我就叫这个yes,注意后面啊格式加个冒号,然后加上你污点中的三个值,比如一定不会调度,尽量不会调度,包括等等这些,比如说咱加第一个这个no she掉。啊,就是冒号等于一个叫no筛掉。然后现在我回车给他加了五点,咱可以做一个查看库ctl describe。
14:03
加上node。K8S node1,然后加上一个。TT,咱们看目前它的污点是不是加上了,然后加上之后呢,我们下面还是是刚才效果,刚才没有加的时候,我这个相关的pod会给你分配到NODE1或者NODE2上,但是我现在给NODE1加上了一个就是污点,就是刚刚才看到的。这么一个特点啊,污点。我们看到就是加上这么一个,然后现在他NODE1里边应该按我们正常场景,应该一定不会被调度,他这些东西应该都被调度到NOE2上面去,那咱就给他试一下啊,看一下它的特点。比如我们现在给他试一下。我来试啊,比如现在我来创建。CU ctl。Deployment。
15:02
比如叫web。杠杠。隐秘之。等于。N这个。咱们回车在里边,我们来查看一下。Get pods-O。Y的,然后咱看目前是不是到了这个no场,比如现在咱同样还是创建多个,我把那命令直接执行下,你刚才写过了啊,直接给他找到,就这个我再来五个,现在回车,回车之后还是做个查看,那这个效果大家看啊,是不是我们想要的效果。咱们清楚看到目前都给你调到哪里。是不NODE2上,因为咱们在NODE1里边是不是已经加了那个污点,包括咱们那个值叫no shadow,它就表示我这个节点一定不被调度到。它都会调度到咱们的NODE2这点上啊,但这里边咱多等一会儿,然后这个应该都会最终是一个running的一个状态,所以现在咱们把污点这种效果给大家做了演示啊,就是你明确啊污点的作用是什么。
16:12
你这节点是分配,但是他不做普通分配,要做一些特别处理,比如说咱们专用节点,包括做驱逐,包括做等等这个操作,这个就叫做污点。各位。把这个给它知道,包括这里边,比如说我们最终看到是不是都是乱定状态,这样的话我们就完成了啊,然后完成之后呢,这个污点,比如我创建之后呢,比如说现在同学想我想把它删除掉,它也是可以进行删除的,那咱们也是可以用个命令把这污点给它就删除掉。那这里边我就可以给他筛一下啊,咱来试一下这个污点怎么删掉。过程应该很简单啊,就是我们写上这个删除。给大家写下啊。
17:00
在我们的这位置,比如现在啊,我们先把这个NODE1上面那个污点先做一个查看,咱看目前它那个污点的情况啊,应该就是这个命令,我们看目前是不是这个,那我现在给它删掉,我来一个CU ctl。加上里面一个叫这个T。然后加上node,我这叫K8S node1,然后后面加什么呢?加上你那个K的名字,因为咱们叫,因为这个肉加个冒号,再加上你污点中是那个值,我们叫no筛掉。然后加个横杠,咱们现在回车,这样的话把它给删掉,删掉之后我们再做个查看,你看现在是不是就没有了,所以这样的话,我们把这个做了一个说明,就关于这个污点该怎么进行删除,里边用这个命令可以做到。给各位啊,我把它。
18:00
截过来你注意啊,这里边有个横杠啊,这是我们为它添加剂,这个污点,包括咱们可以删除污点。或者说去掉这个污点啊,一个意思啊,删除污点,然后在里边我们用的就是这个命令啊,包括添加污点,刚才咱们也做到了,所以这是里边几个基本命理,然后这效果大家都看到了啊,就是里边的这么一种基本情况,这是关于污点的这么一个讲解。然后这个污点说完之后呢,咱们继续往下来看啊,下面在里边呢,其实还有一个描述,它叫做污点的容忍。那这是什么意思,给各位说一下啊,比如这个我先画一下,咱刚才演示了。这么一个基本效果,然后最后有一个叫污点的容忍。给各位最终说明一下。我写下啊,第四个。污点容忍,那什么叫污点容忍呢?比如说我刚才啊,在我这弄的一中,咱们设置污点是这个叫no shadow掉,表示它一定不会调用,但我现在比如说我想实现,就算我设计之后,这个节点可能也会被调到,但是也可能不会调到,想他做一个也是这种类似于软亲和性的效果,这就叫污点容忍,当你设置成污点容忍之后,就算这直视no筛掉,它也可能被调度到,这叫污点容忍。
19:31
那他怎么做,很简单啊,在里边咱可以直接在样物的文件中做一段修改啊,就是给它加上这么一段值我各位截过来啊,给各位来说一下,就这个比较简单了,然后在里边。你就可以加上这么一段,然后这一段内容中呢,它主要写的是里边的。这个地方各位看啊,加一个叫toration,然后K包括操作符包你的值,还有它那个就是污点中的三个值,然后注意啊,这里边的K和它value是你设置污点的K和value,比如说我们刚才设置的污点是因为肉是K,它的值yes,那你K就改成因为肉这个值就改成yes,最终这么一配置,然后你这个节点虽然加了污点,因为我们设置了污点容忍,所以它也可能被调度到,当然也可能不会调度到。
20:28
啊,所以这是关于污点和污点容忍的这么一个说明。这也是影响pod调度的一个很重要的一种概念,污点,污点容忍,所以各位把我刚才演示的效果给他知道啊,包括和这个node select no fairity它的区别,咱也做了一个说明。这是关于影响pod的调度污点污点容忍的一个最终的讲解。
我来说两句