1.指定pod到指定的node上

#1.1查看节点的lebel
kubectl get nodes --show-labels#1.2获取到该节点的label信息
ip-10-100-2-80     Ready    <none>   60d   v1.14.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-100-2-80,kubernetes.io/os=linux#1.3也可通过自己设置label
kubectl label nodes <node-name> <label-key>=<label-value>#1.4在配置文件spec下面添加
spec:nodeSelector:kubernetes.io/hostname: ip-10-100-2-80

2.Taint 和 Toleration

2.1. 概念

  • nodeSelector可以通过打标签的形式让Pod被调度到指定的Node上,Taint则相反,它使节点能够排斥一类特定的Pod,除非Pod被指定了toleration的标签。(taint即污点,Node被打上污点;只有容忍[toleration]这些污点的Pod才可能被调度到该Node)。

2.2 effect的类型

NoSchedule:只有拥有和这个 taint 相匹配的 toleration 的 pod 才能够被分配到这个节点。

PreferNoSchedule:系统会尽量避免将 pod 调度到存在其不能容忍 taint 的节点上,但这不是强制的。

NoExecute :任何不能忍受这个 taint 的 pod 都会马上被驱逐,任何可以忍受这个 taint 的 pod 都不会被驱逐。Pod可指定属性 tolerationSeconds 的值,表示pod 还能继续在节点上运行的时间。

tolerations:
- key: "key1"
operator: "Equal"
value: "value1"
effect: "NoExecute"
tolerationSeconds: 3600

2.3 kubectl taint

# 给节点增加一个taint(污点),它的key是<key>,value是<value>,effect是NoSchedule。
kubectl taint nodes <node_name> <key>=<value>:NoSchedule#删除节点上的taint。
kubectl taint nodes node1 key:NoSchedule-

2.4 只有拥有和这个taint相匹配的toleration的pod才能够被分配到 node_name 这个节点。

例如,在 PodSpec 中定义 pod 的 toleration:
#operator:Equal 会比较key和value
#operator:Exists 只要含有key就会容忍该污点tolerations:
- key: "key"operator: "Equal"value: "value"effect: "NoSchedule"tolerations:
- key: "key"operator: "Exists"effect: "NoSchedule"#容忍所有含污点的node
tolerations:
- operator: "Exists"#容忍所有key相同的,忽视effect
tolerations:
- key: "key"operator: "Exists"

2.3. 使用场景

2.3.1. 专用节点

kubectl taint nodes <nodename> dedicated=<groupName>:NoSchedule

先给Node添加taint,然后给Pod添加相对应的 toleration,则该Pod可调度到taint的Node,也可调度到其他节点。

如果想让Pod只调度某些节点且某些节点只接受对应的Pod,则需要在Node上添加Label(例如:dedicated=groupName),同时给Pod的nodeSelector添加对应的Label。

2.3.2. 特殊硬件节点

如果某些节点配置了特殊硬件(例如CPU),希望不使用这些特殊硬件的Pod不被调度该Node,以便保留必要资源。即可给Node设置taint和label,同时给Pod设置toleration和label来使得这些Node专门被指定Pod使用。

kubectl taint

kubectl taint nodes nodename special=true:NoSchedule
# 或者
kubectl taint nodes nodename special=true:PreferNoSchedule

2.3.3. 基于taint驱逐

effect 值 NoExecute ,它会影响已经在节点上运行的 pod,即根据策略对Pod进行驱逐。

如果 pod 不能忍受effect 值为 NoExecute 的 taint,那么 pod 将马上被驱逐
如果 pod 能够忍受effect 值为 NoExecute 的 taint,但是在 toleration 定义中没有指定 tolerationSeconds,则 pod 还会一直在这个节点上运行。
如果 pod 能够忍受effect 值为 NoExecute 的 taint,而且指定了 tolerationSeconds,则 pod 还能在这个节点上继续运行这个指定的时间长度。

Kubernetes对Pod调度指定Node以及Node的Taint 和 Toleration相关推荐

  1. Kubernetes之Pod调度

    本文讲的是Kubernetes之Pod调度[编者的话]Kubernetes调度器根据特定的算法与策略将pod调度到工作节点上.在默认情况下,Kubernetes调度器可以满足绝大多数需求,例如调度po ...

  2. 二十、Kubernetes中Pod调度第二篇NodeAffinity详解、实例

    1.概述 在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的.但是在实际使用中,这并不满足的需求,因为很多情况下,我们想控制 ...

  3. Kubernetes 是如何调度的?

    作者 | 阿文,责编 | 郭芮 头图 | CSDN 下载自东方IC 出品 | CSDN(ID:CSDNnews) 自互联网出现以来 ,云计算的概念已经提出了有 50 年.从1957 年,John Mc ...

  4. Kubernetes的Pod详解

    文章目录 Pod生命周期 创建和终止 初始化容器 钩子函数 容器探测 示例 重启策略 Pod调度 定向调度 亲和性调度 污点和容忍 污点(Taints) 容忍(Toleration) Pod生命周期 ...

  5. Kubernetes中Pod的调度策略

    Kubernetes中Pod的调度策略 1.Pod调度 在 Kubernetes 平台上,我们很少会直接创建一个 Pod,在大多数情况下会通过 RC.Deployment. DaemonSet.Job ...

  6. k8s 部署pod到指定node

    k8s指定节点部署 在一些业务场景中,会需要将一些pod部署到指定node,按照默认的调度规则,pod会优先分配到负载较小的node中,难免会出现多个pod资源竞争的情况. k8s有两种常用的方法可以 ...

  7. 关于K8s中Pod调度[选择器,指定节点,主机亲和性]方式和节点[coedon,drain,taint]标记的Demo

    写在前面 嗯,整理K8s中pod调度相关笔记,这里分享给小伙伴 博文内容涉及: kube-scheduler组件的简述 Pod的调度(选择器.指定节点.主机亲和性)方式 节点的coedon与drain ...

  8. Kubernetes Pod调度进阶:Taints(污点)和Tolerations(容忍)

    [注意]最后更新于 2 years ago,文中内容可能已过时,请谨慎使用. 污点(Taint)和容忍(Toleration)是从Kubernetes 1.6开始提供的高级调度功能. 在Kuberne ...

  9. 全手动搭建Kubernetes集群——Master管理节点和Node工作节点部署

    目录 前言 一.Master管理节点需要安装的组件介绍 二.配置Master管理节点各组件模块 1.配置kube-apiserver组件 2.配置kube-controller-manager组件 3 ...

最新文章

  1. 独家 | 简单三步实现Python脚本超参数调优(附代码)
  2. python3 字符串 统计子字符数量 内置方法count
  3. 系统管理员设置了系统策略,禁止进行此安装
  4. 课堂经验值管理小程序_柳州人事管理小程序要有这些功能
  5. idea创建git分支
  6. Spring Cloud Sleuth + Zipkin + RabbitMQ +MySQL(三)
  7. 大数据分析中常见的分析模型
  8. PowerDesigner数据库设计PDM基于Excel的导入导出总结
  9. 算法笔记_101:蓝桥杯练习 算法提高 身份证号码升级(Java)
  10. 【人工智能系列 - 智能硬件 - 02】演化硬件的研究现状及发展趋势
  11. 用python画一个树_如何用python简单画一棵树
  12. Python爬虫爬企查查数据
  13. 秀米怎么添加附件链接,如Word、Excel、Pdf等
  14. 屏幕录像专家2014 v0318 免费版
  15. UG中怎样删除已经选好的加工模板
  16. Excel操作技巧:三列内容合并生成到另外一列中;在判断某列里面的值在另外列中是否存在
  17. 文件操作的实例——下载并合并流式视频文件
  18. 服务器如何多个网站和数据库,网站和数据库分两个服务器
  19. 在keil中如何切换stm32的大中小容量芯片
  20. V模型 W模型 H模型

热门文章

  1. 火眼金睛,看透Spring处理Import注解的全过程
  2. 认识自己所承受的压力
  3. 冷暴力,是什么心理?
  4. html中的左浮动的作用,CSS浮动
  5. Kotlin学习之----内置函数apply、let、run、with、also的使用
  6. Springboot自动售货机后台管理系统源码带文档
  7. 汽车车身冲压模具是冲制汽车车身上所有冲压件的模具
  8. WIFI限制敏感网页_台式机也想用WIFI?加个无线网卡就行
  9. 【多轮对话】任务型多轮对话状态跟踪-NBT原理
  10. 免费接口测试-仅供测试专用