# 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源文件
- 服務升級
- 筆記
- 鏡像