定义
taints 是键值数据,用在node上,定义污点
toleration 是键值数据,用在pod上,定义容忍度,能容忍哪些污点
taints 查看路径
[root@k8smaster4 ~]# kubectl explain node.spec.taints
taints 排斥等级
NoSchedule: scheduler执行控制,不影响已运行在node上的pod
NoExecute: NodeController执行控制,影响已运行在node上的pod
PreferNoSchedule:scheduler执行控制,最好不运行新的pod在污点node
Tolerations 查看路径
[root@k8smaster4 ~]# kubectl explain pod.spec.tolerations
node 新增污点
[root@k8smaster4 ~]# kubectl taint node k8snode4 node-type=production:NoSchedule
查看新增污点
[root@k8smaster4 ~]# kubectl describe node k8snode4 | grep node-type
Taints: node-type=production:NoSchedule
编写无容忍度Pod
[root@k8smaster4 ns]# cat pod-taint.yaml
apiVersion: v1
kind: Pod
metadata:
name: taint-pod
namespace: default
labels:
tomcat: tomcat-pod
spec:
containers:
- name: taint-pod
ports:
- containerPort: 8080
image: docker.io/xianchao/tomcat-8.5-jre8:v1
imagePullPolicy: IfNotPresent
编写容忍度Pod
[root@k8smaster4 ns]# vi pod-toleration.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-deploy
namespace: default
labels:
environment: production
app: tomcat
spec:
containers:
- name: tomcat-app
image: docker.io/xianchao/tomcat-8.5-jre8:v1
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
tolerations:
- key: "node-type"
operator: "Equal"
value: "production"
effect: "NoExecute"
tolerationSeconds: 3600
动态查看Pod状态
[root@k8smaster4 ns]# kubectl get pods -owide -w