我是靠谱客的博主 可爱水池,这篇文章主要介绍CC00202.CloudKubernetes——|KuberNetes&高级调度.V05|——|污点容忍.v03|NoSchedule静止调度容器强制驱逐|,现在分享给大家,希望可以做个参考。

一、NoSchedule静止调度,容器强制驱逐
复制代码
1
2
3
4
5
### --- 为master01打一个污点,NoSchedule类型,静止调度;容器会被强制驱逐 ~~~ 为master01节点打入污点,NoExecute类型 [root@k8s-master01 ~]# kubectl taint node k8s-master01 master-test=test:NoExecute node/k8s-master01 tainted
复制代码
1
2
3
4
5
6
7
8
9
10
11
### --- 可以看到master01节点上的被强制迁移 ~~~ 在k8s-master01节点的先是Terminating状态的被删除掉 ~~~ Pending状态因为我们为容器打了NoSchedule状态,它只能部署在k8s-master01节点, ~~~ 所以它会显示Pending状态 [root@k8s-master01 ~]# kubectl get po -owide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES busybox 1/1 Terminating 126 9d 172.25.244.211 k8s-master01 <none> <none> demo-nginx-6fddc76f8d-6n88v 0/2 Pending 0 10s <none> <none> <none> <none> demo-nginx-6fddc76f8d-9cjzb 2/2 Terminating 0 7m28s 172.25.244.229 k8s-master01 <none> <none> demo-nginx-6fddc76f8d-jd65q 0/2 Pending 0 10s <none> <none> <none> <none>
二、删除一个污点
复制代码
1
2
3
4
5
6
7
8
### --- 删除一个污点 ~~~ 查看k8s-master01所有的污点 ~~~ 注:只有它的key、value、effect都一样的,才能被认为是同一个污点 ~~~ 所以我们删的时候需要把key名和effect指定在上面才可以被删除掉 [root@k8s-master01 ~]# kubectl describe node k8s-master01 Taints: master-test=test:NoExecute master-test=test:NoSchedule
复制代码
1
2
3
4
5
### --- 删除一个污点 [root@k8s-master01 ~]# kubectl taint node k8s-master01 master-test:NoExecute- node/k8s-master01 untainted You have new mail in /var/spool/mail/root
复制代码
1
2
3
4
### --- 查看污点;发现删除的污点已经不存在了 [root@k8s-master01 ~]# kubectl describe node k8s-master01 Taints: master-test=test:NoSchedule
复制代码
1
2
3
4
5
6
### --- 查看k8s-master01上的两个pod运行正常;不在是pending状态。 [root@k8s-master01 ~]# kubectl get po -owide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES demo-nginx-6fddc76f8d-6n88v 2/2 Running 0 8m28s 172.25.244.231 k8s-master01 <none> <none> demo-nginx-6fddc76f8d-jd65q 2/2 Running 0 8m28s 172.25.244.230 k8s-master01 <none> <none>
三、注释说明
复制代码
1
2
3
4
5
6
### --- 污点类型 ~~~ NoSchedule:禁止调度 ~~~ NoExecute:如果不符合这个污点,会立马被驱逐 ~~~ PreferNoSchedule: 尽量避免将Pod调度到指定的节点上。 ~~~ node.kubernetes.io/not-ready: 节点没有准备好,Ready不为true
复制代码
1
2
3
4
5
6
7
### --- tolerations的书写规则 tolerations: - effect: NoSchedule key: master-test operator: Equal value: test
复制代码
1
2
3
4
5
6
7
8
### --- Node节点有多个Taint,每个Taint都需要容忍才能部署上去。 ~~~ 注:可以容忍key:master-test,effect:NoSchedule的,不管它的value是什么都可以容忍。 ~~~ 注:只要匹配到了key和effect都是可以容忍,不管value是什么 tolerations: - effect: NoSchedule key: master-test operator: Exists
复制代码
1
2
3
4
5
### --- 可以容忍所有的污点 ~~~ 注:可以容忍所有的污点,没有写key和effect;一般是用不到的 tolerations: - operator: Exists
复制代码
1
2
3
4
5
6
### --- 容忍2个污点。 ~~~ 注:只要它的污点只要存在这个key,我都可以去容忍,这样就可以简单的容忍2个effect。 tolerations: - operator: Exists key: master-test

最后

以上就是可爱水池最近收集整理的关于CC00202.CloudKubernetes——|KuberNetes&高级调度.V05|——|污点容忍.v03|NoSchedule静止调度容器强制驱逐|的全部内容,更多相关CC00202内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部