00:00
那接着我们继续往后去看,我们再看下一个我们的调度器里面的一个污点的设置。亲和性是PD的一种属性偏好,或者是硬要求,对吧?一个软一个硬,它使pod能够被吸引一类特定的节点,那我们的污点呢则相反,它是节点能够被排斥一定特定的泡的。一类特定的泡D,好,那污点和我们的容忍是一个相互配合,可以用来避免泡D被分配不适合的检点。每个节点上都可以应用一个或多个污点,那这表示对于那些不能容忍这个污点的PT是不会在该节点上被接受的。如果将容忍应用在pod上,那么代表这个PD可以被匹配到这些污点的节点上去运行。那这句话呢,不太好理解,我给大家举一个常见的例子,那可能当年龄大以后,我们都去,都会遇到一些相亲,对吧?好,那有些条件。
01:03
比如一个女孩子说,啊,这个男孩子打不打呼啊,如果打呼的话,我容忍不了。也就意味着,如果有些男孩他们的特定的标签上被贴上打呼两个字的话,那这个女孩就不就没有可能跟这个男孩走在一起,对吧?这就是典型的一个污点和容忍。但是再反过来给大家举个例子,我说,哎,这个女孩说了,她可以接受打呼。那一定打呼的这些男孩就能跟他走在一起吗?天下之大,不打呼的男人多了去了,对吧?还能都在一起吗?这不现实。所以污点和容忍的概念就是,如果你能容忍这个污点,代表你有可能你俩会发生故事,但不一定会发生故事。能理解我的意思吗?只是有发生故事的可能性,而在我们的K8里,它依然是这个概念。假设我有一个pod。
02:03
他。不能容忍任何污点,那在我们的其中一个node上,它有一个污点存在,有一个污点存在,那这个pod就不会被调度到这个节点上去。如果这个炮说了,哎,我能容忍这个5.1,我容忍这个5.1。难道它就一定会运行在这个NOTE01上吗?不一定吧,NOTE02是不是也有可能被运行?原因是什么啊?有污点的我都能容忍,那没有污点的我凭什么不能被运行呢?只是它不会成为一个选择的障碍而已。能听懂我的意思吗?好,只是有了可能性而已。好,那我们先看第一个污点,污点的组成,使用我们的库ctl,我们的判命令就可以给某个note节点去设定我们的污点。note被设置上误点之后,就可就和我们的炮之间存在一种相互排斥的关系,可以让node拒绝pod的调度执行,甚至将node将已经存在的pod给驱离出去。
03:06
每个五点的组成部分是由k value和艾去组成的。好,那底下也做说明了,对吧,每个污点都有一个K和value作为污点的标签,其中value可以是为空的。Eic可以描述五点的作用,当前呢,T支持以下的三个选项,第一叫no ste,第二叫pro no以及no ES cut。好,第一个表示的是K 8S不会将pod调度到具有该污点的no之上,第二是表是8S,尽量避免将pod调度到该污点的noe之上。那第三个表示K8S不会将pod调度到具有该污点noe之上,同时会将noe上已经存在的pod给驱离出去更过分,对吧?趁恨如果有这个污点的话,哪怕结婚了也会离婚,是这个意思吧?好,这是我们的三种不同的污点的这么一个,Effect的这么一个,呃,选择方案,那接下来我们可以看一下,其实对于我们的K8S呢,它已经设置了一定的五点了,我们可以通过Co c get note Co ctlre note,我们看的是K8S的MUST01这个节点,我们往上翻,我们看一下它有没有误点。
04:25
我们可以看到这里有一个我们的污点,对吧?这明值为空,我们之前说过的值可以省略对吧?Effect是我们no丢了,那代表的含义就是no了,是不是就是不在这个节点上被调度啊,我们可以看到对吧?呃,Note丢了,不会将pod去调度到该具有该五点的note之上,这也是为什么我们的K8S在运行一些pod的时候都会被分在我们node节点上,不会被分配在我们的MAS节点的原因,因为MAS节点天生就打了这么一个标签,这么一个污点,不被调度的污点,需要大家注意一下。
05:01
好,那我们过来看一下怎么去设置误点去除,首先如果想设置污点的话,探对吧,Node哪个节点名称k value以及你对应的effect,那我们可以过来看一下效果。那QQ ctl po,那O都在我们NO0上去运行的,对吧,那我们现在我们可以给我们的呃,NOE01打个标签,我们打什么标签呢?打这个驱离的标签叫no ex ex cut。好,我们去打下标签,突破ctl。Tank no,我们的节点是K8S的NOD0音好键名呢,可能就叫做呃。Check这个节点我需要检测了,那键值呢,就是我的名称啊,我检测了,以及对应的effect呢,是我们的no ES cut回车,那这样的话这个污点就被打上了,对吧?我们再get炮看一下效果,看到了吗?什么含义啊,你会发现我现在的炮都没有,原因是我打的是一个no exe cutt的这么一个标签,代表的含义就是把具有该标签哪怕上面已经运行的一些pot都给它去离掉。
06:31
因为这个pod是一个自主式PD,没有控制器控制的D,所以被驱离完成以后,你会发现这个炮D已经不存在了。如果是deploy,或者是我们的step。控制器的这么一个pod,它就会在我们诺零二节点上被创建。能理解我的含义吧,因为他要维持它的副本数目,像这种字数是泡的,是不没有人管,它的副本数目被删除以后就没了,是这个意思吧?好,这就是我们的节点的创建。
07:00
那当然我们还有节点的容忍对吧?好,那我们现在先不删,我们等会再去看怎么去删除,那删除的方案也比较简单对吧?只需要在你的k values后面加一个减号,就代表把这个污点给它删掉,等会我们再去删,我们今看一下容忍,我们就利用这个容忍去运行看下效果,对吧?好,在这里设置了污点的notde将根据我们的T的effect,就是我们的note s still prefer no still no ES cutt和D之间仿真的互视关系,Pod将在一定程度上不会被调度到note之上,但我们可以在D上设置容忍,意思就是容忍跟pod能够可以容忍的污点的存在,那就有调度到该污点的note上的这么一个可能性。那接下来呢,我们可以给大家去设置一下我们的操作,我们看下效果,比如现在我把我们的NOE0啊,我们也给他打上五点,那这样的话,我们可以去运行一下create大Apple,我们随便运行一个炮,我们看看效果,对吧?没有一个污点能够在被运行,因为现在两个节点都有污点,不能讲两个,应该是三个节点都有污点。
08:09
我们的节点天生就有一个not的调度,不能被调度的点,对吧,那这两个呢,被我打了一个no EE cut的这么一个点不能被调度以及不能被运行,那所以呢,现在这个pod啊,现在这个pod根本没有对应能no的能够被选择去运行对吧?好,那现在我们去看一下怎么去容忍污点那。Po Spark to,那这里呢,有一个K,一个opera,对吧,一个我们的运算关系,以及我们的value,以及我们的effect,以及我们的容忍的这么一个期限,这么一个时间,那底下也说了,Key values和effect要与note上设置的一定要保持一致,一个都不行,一个不对都不行。那它的运算关系的值为exce,将忽略value的值就是存在即可,对吧?好,那以及我们的性的second这么一个描述,Pod需要被驱离的时间,可以在炮流上继续保留的时间,这是什么含义呢?这个含义就是我们之前是不是说过有一个叫做no e card这么一个机制,哪怕有pod在之上运行,也会被驱离出去。如果你设置了这么一个时间的话,代表的含义就是,哎,我虽然会被驱离,但是我能够继续保持的时间为多少秒?
09:31
那比如我写个6000秒,那我在6000秒之后就被驱离了,能理解我的意思吧?好,那还有一些属性需要注意一下,第一个就是当不指定K值时,表示容忍所有的误点的K,那当不指定我们的effect时,表示容忍所有的污点。好,那这两个呢,还是比较有意义的,对吧,那我们接下来可以把这个实验给大家做一下,我们看一下效果,首先呢,我们去打开一下我们的PART2的L吧。
10:00
跑的有点多是吧,我们打开P3的,我们看一下。我把这亲和性给删了,好,我们直接在底下添加,添加我们的柔软的污点。好,那接下来呢,我们去改一下我们的K叫什么啊。我们看一下我们的K叫什么,我们的K叫check。执教汪洋。K叫check,十叫我们的王洋,这里是等于的含义,对吧?然后呢,你发的是我们的no card,好保存对数,Co c up play,杠,F port3同见没有。
11:05
库CR part看到了吗?已经运行了,原因是什么?因为我们之前是不是给大家说过啊,哎,你虽然有污点,但是我能容忍你这个污点,那我是不是就可以运行啊,这就是污点和容忍的关系。好。好,我们看最后一个有多个ma的存在,是为了防止资源浪费,可以进行如下的设置,而给我们node主节点上打了一个标签,标签的前面的键池呢?为空我们的effect呢?是我们一个叫prefer no,那这个的含义是尽可能的不在该节点上去运行。什么叫尽可能呢?当我们后面所有的pod都出现了一个所谓的资源不够用的问题,那这时候我们就可以在我们的ma地点上去运行对应的pod了,能理解我的含义吧?好,那这个我们就现在可以把我们的MA01给他打上,对吧,我们的MA01K8S。
12:08
是叫MA01吧。我们看一下是不是叫马斯零库c d get note叫K8S马斯零一好。那这样的话,如果有一天所有的节点都不可用的话,这些炮呢,就会在我们MAS节点上去运行。那这个呢,就是我们的一个污点,其实在不经意间呢,我们也给大家讲了一个运维的关系,就是如果有一天我的PD02。啊,我的NOTE0啊,需要被维护,需要去更新它的一些组件啊,或者一些策略啊,那这时候这上面会进行很多的pod,如果我直接把这个pod,这个note给它关闭的话,可能会造成我们的网络的访问的一些影响,那在这种情况下,我就可以先对我们的NOTE02去打一个污点。
13:02
去打一个污点,那打什么污点呢?打我们的no。把我们的no EE cut这么一个污点,那这样的话,运营在该pod之上的所有的该node之上的所有的portd时候就会被驱离出去,驱离完成以后,我们再把这个节点从我们的集群中清除,然后呢,我们就可以对它进行所谓的更新了,对吧?这样就不会影响我们的业务了。那我们现在之前为了做实验呢,给我们的二零和我们的二一打了一些污点,我们现在把这些污点给他去了,我们可以看一下历史记录。污点对吧,我们打了这些污点,我们现在先把污点给去了,你只需要把这些命令复制下来,加一个井号,就代表把这个污点给它去除。我们再去说NODE01,那这样的话,我们库布CT啊script node k8S的NODE01,我们看一下。
14:05
污点为钠对吧,这是怎么去清除我们对应的污点,好,那这个呢,就是我们的污点和我们的容耳啦。
我来说两句