# 1. 什么是污点
1. paint污点类似于Label,是对node的一种标记
2. 如果node被打了污点,pod不能容忍这个污点,则pod不会被分配到这个node上
3. `key 加 value 加 strategy` 标识一个污点
# 2. 污点策略strategy
NoSchedule: node添加这个effecf类型污点,新的不能容忍的pod不能再调度过来,但是老的运行在node上不受影响
NoExecute:K8Snode添加这个effecf类型污点,新的不能容忍的pod不能调度过来,老的pod也会被驱逐
PreferNoSchedule:pod会尝试将pod分配到该节点
# 3. 使用污点
> 格式
`kubectl taint nodes nodeName key=value:strategy`
**1. 给pod打一个污点**
```
kubectl taint nodes node02 disktype=ssd:NoExecute
```

打上污点后,node2上的pod被干掉了

说明:给node02打上一个污点disktype值是ssd,并且原先分配的pod也驱逐
**2. deployment添加容忍这个污点**
```
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx:1.14.0
name: nginx
```
没有忍受污点,pod全部分在了node01上

加上忍受污点
```
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx:1.14.0
name: nginx
tolerations: # 污点配置
- key: "disktype"
operator: "Equal"
value: "ssd"
effect: "NoExecute"
```
pod也可以路由到node02上了

- docker
- docker安装
- 数据持久化
- 镜像管理
- Dockerfile
- 镜像的分层
- add copy
- 构建实例
- 镜像的导入导出
- 清理构建空间
- 配置阿里云加速器
- docker网络模型
- 本地仓库
- registry
- harbor
- IDEA部署docker
- 软件安装
- 安装es
- 安装MongoDB
- 安装rabbitmq
- 安装redis
- 安装nacos
- 安装mysql
- Minio
- 镜像中心
- kubernetes
- 1. 安装k8s
- 2.主要组件
- 3.污点
- 4.pod
- 5.控制器
- 6.网络
- 7.探针
- 8.安装Dashbord
- 9.secret
- 9.serviceAccount
- 10.service
- 资源清单
- kube-proxy
- flannel源文件
- 服务升级
- 笔记
- 镜像