kubernetes 设置 Master 可调度与不可调度

简介: kubernetes 设置 Master 可调度与不可调度语法kubectl taint node [node] key=value[effect][effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ]NoSchedule: 一定不能被调度PreferNoSchedule: 尽量不要调度NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod

kubernetes 设置 Master 可调度与不可调度

语法

kubectl taint node [node] key=value[effect]

[effect] 可取值: [ NoSchedule | PreferNoSchedule | NoExecute ]

NoSchedule: 一定不能被调度

PreferNoSchedule: 尽量不要调度

NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod

取消污点

取消污点
[root@k8s-master01 ~]# kubectl taint node k8s-master node-role.kubernetes.io/master-

设置污点

# 设置为一定不能被调度

[root@k8s-master01 ~]# kubectl taint node k8s-master01 node-role.kubernetes.io/master="":NoSchedule
node/k8s-master01 tainted
[root@k8s-master01 ~]# kubectl taint node k8s-master02 node-role.kubernetes.io/master="":NoSchedule
node/k8s-master02 tainted
[root@k8s-master01 ~]# kubectl taint node k8s-master03 node-role.kubernetes.io/master="":NoSchedule
node/k8s-master03 tainted
[root@k8s-master01 ~]# 

# 查看污点
[root@k8s-master01 ~]# kubectl  describe  node | grep Ta
Taints:             node-role.kubernetes.io/master:NoSchedule
Taints:             node-role.kubernetes.io/master:NoSchedule
Taints:             node-role.kubernetes.io/master:NoSchedule
Taints:             <none>
Taints:             <none>
Taints:             <none>
Taints:             <none>
Taints:             <none>
[root@k8s-master01 ~]# 

查看验证

# 查看已经调度到maser上的pod没有被驱逐
[root@k8s-master01 ~]# kubectl  get pod -o wide
NAMESPACE              NAME                                         READY   STATUS    RESTARTS       AGE   IP               NODE           NOMINATED NODE   READINESS GATES
default                hostname-test-cby-58d85dccdb-7zgjj           1/1     Running   1 (2d1h ago)   19d   172.25.244.195   k8s-master01   <none>           <none>
default                hostname-test-cby-58d85dccdb-8t7zv           1/1     Running   1 (2d1h ago)   19d   172.25.244.196   k8s-master01   <none>           <none>
default                hostname-test-cby-58d85dccdb-9bqsq           1/1     Running   1 (2d1h ago)   19d   172.25.92.74     k8s-master02   <none>           <none>
default                hostname-test-cby-58d85dccdb-jj2ml           1/1     Running   1 (2d1h ago)   19d   172.17.125.3     k8s-node01     <none>           <none>
default                hostname-test-cby-58d85dccdb-k96zl           1/1     Running   1 (2d1h ago)   19d   172.18.195.3     k8s-master03   <none>           <none>
default                hostname-test-cby-58d85dccdb-lng8b           1/1     Running   1 (2d1h ago)   19d   172.29.115.131   k8s-node04     <none>           <none>
default                hostname-test-cby-58d85dccdb-lsrbg           1/1     Running   1 (2d1h ago)   19d   172.25.214.195   k8s-node03     <none>           <none>
default                hostname-test-cby-58d85dccdb-mlv24           1/1     Running   1 (2d1h ago)   19d   172.17.54.131    k8s-node05     <none>           <none>
default                hostname-test-cby-58d85dccdb-p5vc8           1/1     Running   1 (2d1h ago)   19d   172.27.14.195    k8s-node02     <none>           <none>
default                hostname-test-cby-58d85dccdb-z6ptf           1/1     Running   1 (2d1h ago)   19d   172.25.214.196   k8s-node03   
  <none>           <none>
[root@k8s-master01 ~]# 

设置污点

# 设置为不仅不会调度, 还会驱逐Node上已有的Pod
[root@k8s-master01 ~]# kubectl taint node k8s-master03 node-role.kubernetes.io/master="":NoExecute
node/k8s-master03 tainted
[root@k8s-master01 ~]# kubectl taint node k8s-master02 node-role.kubernetes.io/master="":NoExecute
node/k8s-master02 tainted
[root@k8s-master01 ~]# kubectl taint node k8s-master01 node-role.kubernetes.io/master="":NoExecute
node/k8s-master01 tainted

# 查看污点
[root@k8s-master01 ~]# kubectl  describe  node | grep Ta
Taints:             node-role.kubernetes.io/master:NoExecute
Taints:             node-role.kubernetes.io/master:NoExecute
Taints:             node-role.kubernetes.io/master:NoExecute
Taints:             <none>
Taints:             <none>
Taints:             <none>
Taints:             <none>
Taints:             <none>
[root@k8s-master01 ~]# 

查看验证

# 查看已经调度到master节点的pod已进行驱逐
[root@k8s-master01 ~]# kubectl  get pod  -A -o wide
NAMESPACE              NAME                                         READY   STATUS              RESTARTS       AGE   IP               NODE           NOMINATED NODE   READINESS GATES
default                mysql-0                                      2/2     Running             0              34m   172.27.14.206    k8s-node02     <none>           <none>
default                mysql-1                                      2/2     Running             0              34m   172.17.125.11    k8s-node01     <none>           <none>
default                mysql-2                                      2/2     Terminating         0              34m   172.18.195.10    k8s-master03   <none>           <none>
[root@k8s-master01 ~]# 
文章主要发布于微信公众号:《Linux运维交流社区》
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
4月前
|
存储 边缘计算 Kubernetes
边缘计算问题之YurtControllerManager 接管原生 Kubernetes 的调度如何解决
边缘计算问题之YurtControllerManager 接管原生 Kubernetes 的调度如何解决
38 1
|
2月前
|
存储 Kubernetes 监控
Kubernetes设置
【10月更文挑战第3天】Kubernetes设置
|
29天前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
168 1
|
1月前
|
存储 Kubernetes 监控
|
29天前
|
Kubernetes 监控 Java
如何设置 Kubernetes的垃圾回收策略为定期
如何设置 Kubernetes的垃圾回收策略为定期
|
2月前
|
应用服务中间件 调度 nginx
Kubernetes的Pod调度:让你的应用像乘坐头等舱!
Kubernetes的Pod调度:让你的应用像乘坐头等舱!
|
3月前
|
Kubernetes 调度 容器
Kubernetes高级调度方式
文章介绍了Kubernetes的高级调度方式,包括调度器的工作机制、节点倾向性(Node Affinity)和Pod倾向性(Affinity)。
73 9
Kubernetes高级调度方式
|
3月前
|
机器学习/深度学习 Kubernetes 调度
Kubernetes与GPU的调度:前世今生
本文详细探讨了Kubernetes与GPU的结合使用,阐述了两者在现代高性能计算环境中的重要性。Kubernetes作为容器编排的佼佼者,简化了分布式系统中应用程序的部署与管理;GPU则凭借其强大的并行计算能力,在加速大规模数据处理和深度学习任务中发挥关键作用。文章深入分析了Kubernetes如何支持GPU资源的检测与分配,并介绍了热门工具如NVIDIA GPU Device Plugin和Kubeflow的应用。
|
2月前
|
Kubernetes 应用服务中间件 Linux
多Master节点的k8s集群部署
多Master节点的k8s集群部署
|
2月前
|
Kubernetes 应用服务中间件 调度
k8s的Pod常见的几种调度形式
k8s的Pod常见的几种调度形式
37 0