kubernetes集群中,master机器,分配任务给worker node机器时,会根据任务的不同要求,比如对内存的要求等,分配给不同符合需求的worker node。所以就有了toleration和taint的这种偏好设置。

1. Toleration 和 Taint 概念

Toleration是 pod 的一种属性(偏好或硬性要求),它使 pod 被吸引到一类特定的节点。比如一个节点内存比较大,会吸引需要大内存的pod。

Taint 则相反,它使 节点 能够 排斥 一类特定的 pod。

Taint 和 toleration 相互配合,可以用来避免 pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个 taint ,这表示对于那些不能容忍这些 taint 的 pod,是不会被该节点接受的。如果将 toleration 应用于 pod 上,则表示这些 pod 可以(但不要求)被调度到具有匹配 taint 的节点上

2. taint一个worker node

kubectl taint node node1 node-type=prod:NoSchedule  (这里的node1根据你真实的node名字来写)

3.schedule一个pod到指定环境

(1)新建一个devpod.yaml的文件,内容如下:

apiVersion: v1

kind: Pod

metadata:

name: devpod

labels:

app: busybox

spec:

containers:

- name: dev

image: busybox

command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']

(2)根据步骤(1)中的yaml文件,创建pod

kubectl create -f devpod.yaml

4. 允许一个pod被schedule到一个pod环境

(1)创建一个deploypod.yaml文件

apiVersion: apps/v1

kind: Deployment

metadata:

name: prod

spec:

replicas: 1

selector:

matchLabels:

app: prod

template:

metadata:

labels:

app: prod

spec:

containers:

- args:

- sleep

- "3600"

image: busybox

name: main

tolerations:

- key: node-type

operator: Equal

value: prod

effect: NoSchedule

(2)以下命令,新建一个deployment(yaml文件里面的kind是pod,那么以下命令创建的就是pod;kind如果是deployment,那么以下命令新建的就是deployment)

kubectl create -f deploypod.yaml

5. 检查每个pod是否被schedule了

kubectl get pods -o wide

6. 检查production pod的toleraion属性

kubectl get pods <pod_name> -o yaml

kubernetes(五)------taint(排斥)和toleration(亲和)相关推荐

  1. Kubernetes 污点 Taint 和容忍 Toleration

    参考地址: kubernetes 官方文档 Taint And Toleration 系统环境: kubernetes 版本:1.16.6 一.介绍 在 Kubernetes 中,节点亲和性 Node ...

  2. Kubernetes(五) - Service

    Kubernetes解决的另外一个痛点就是服务发现,服务发现机制和容器开放访问都是通过Service来实现的,把Deployment和Service关联起来只需要Label标签相同就可以关联起来形成负 ...

  3. Kubernetes调度器-Pod分配给节点(Taint污点和Toleration容忍)

    Taint和Toleration 节点亲和性是pod的一种属性(偏好或硬性要求),它使pod被吸引到一类特定的节点.Taint则相反,它使节点能够排斥一类特定的pod. Taint和toleratio ...

  4. 【云原生 · Kubernetes】Taint和Toleration(污点和容忍)

    个人名片: 因为云计算成为了监控工程师

  5. kubernetes 五种核心资源对象简介

    Namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离. 默认情况下,kubernetes集群中的所有的Po ...

  6. 云原生kubernetes五 :pod创建流程

    目录 1.pod创建流程 一.资源类型 二.创建资源配置清单 三.编写一个自定义配置清单

  7. Kubernetes资源调度之污点与Pod容忍度

    Kubernetes资源调度之污点与Pod容忍度 概述 污点是定义在节点之上的键值型属性数据,用于让节点有能力主动拒绝调度器将Pod调度运行到节点上,除非该Pod对象具有接纳节点污点的容忍度.容忍度( ...

  8. Kubernetes中Pod的调度策略

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

  9. Kubernetes 污点与容忍

    要搞清楚什么是污点?什么是容忍度? 污点  Taint 容忍度  Toleration Taint(污点)和 Toleration(容忍)可以作用于node和 pod 上(即:污点是给node节点设置 ...

  10. 树莓派开始玩转linux pdf_用树莓派构建 Kubernetes 集群 | Linux 中国

    将 Kubernetes 安装在多个树莓派上,实现自己的"家庭私有云"容器服务. • 来源:linux.cn • 作者:Chris Collins • 译者:Xingyu.Wang ...

最新文章

  1. 百度关键词研究: 应避免的5个错误!
  2. java设计模式---合成模式2
  3. java中public、protected、default、private权限问题
  4. Android华容道之一步一步实现-3 -手指触摸处理
  5. 面向.NET开发人员的Dapr- actors 构建块
  6. 金蝶kis云触发器解决审核和反审核的问题
  7. SpringBoot实战教程(3)| 整合Thymeleaf
  8. python is 与 == 的区别
  9. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·003【表的约束、表的CRUD操作(DDL语句)】
  10. 《MYSQL必知必会》—10~13.创建计算字段、使用数据处理函数、使用聚集函数汇总数据,使用GROUP BY与HAVING分组数据及过滤
  11. 查找和杀掉postgresql堵塞的会话
  12. 通过DBlink获取不同数据库数据
  13. MODIS数据下载——订单模式下载tif影像
  14. DHCP与DHCP中继--原理与配置--华为实验--配置接口模式、全局模式以及中继模式
  15. 光纤带光缆的特点及应用场景
  16. css transition ease,css3 transition属性
  17. PTA每日一题-Python-人民币与美元汇率兑换程序
  18. CorelDRAW VBA - 发布(导出)PDF文档
  19. 如何看待用户反馈意见
  20. 软件工程师嵌入式开发交流论坛推荐排行

热门文章

  1. 16GB ipad wifi版行货价格接近港行
  2. Python3 URL格式化url解析url提取参数
  3. jenkins打包报错Failed to connect to repository : Command “/usr/bin/git ls-remote -h -- http://git.c5game
  4. Java本身是一种设计的非常简单的语言!
  5. 第十一届蓝桥杯 ——限高杆
  6. 世界杯32强口号出炉 谁的口号最奇葩?!
  7. 【专题3:电子工程师 之 上位机】 之 【44.使用ffmpeg对视频解码、视频像素和尺寸转换、重采样】
  8. 利器 | AppCrawler 自动遍历测试工具实践(一)
  9. 基于鸿蒙操作系统的单个按键长按、短按的实现
  10. 数据库1:数据库、DDL数据库定义语言、DML操作数据库语言、DQL条件查询语句