K8S学习之底子七:k8s中node污点和pod容忍度 [复制链接]
发表于 2025-10-21 07:06:14 | 显示全部楼层 |阅读模式
污点和容忍度
污点就是界说在节点上的键值属性数据,可以决定拒绝哪些pod

taints是键值数据,用在节点上,界说污点。
tolerations是键值数据,用在pod上,界说容忍度,能容忍哪些污点。
检察node污点:

NoSchedule:仅影响pod调治过程,当pod能容忍这个节点的污点,就可以调治到该节点。假如这个节点污点改了,之 对以后新的pod产生影响,对已存在的pod不影响
NoExecute:既影响调治过程,又影响现存pod
PreferNoSchedule:最好不,也可以。是NoSchedule的不欺压版本
mast的污点是NoSchedule,以是假如创建的pod没有容忍度,都不会调治到master,只会调治到node节点
kube-system定名空间中的pod,是由界说容忍度的:

# 给node02打上污点
kubectl taint node node02 node-type=production:NoSchedule

  1. vi pod-taints.yaml
  2. kind: Pod
  3. metadata:
  4.   name: taint-pod
  5.   namespace: default
  6.   labels:
  7.     app:  nginx-pod
  8. spec:
  9.   containers:
  10.   - name:  taint-pod
  11.     image: 172.16.80.140/nginx/nginx:1.26
  12.     imagePullPolicy: IfNotPresent
  13. kubectl apply -f pod-taints.yaml
  14. kubectl get pods -owide
复制代码

# 该pod无法调治到node02上,只能调治到node01上
# 给node01也打上污点  NoExecute,发现pod不见了,重新应用,也只能是pending状态
kubectl taint node node01 node-type=dev:NoExecute

# 给pod打上容忍度,node-type=dev:NoExecute,发现pod又可以调治到node01上了
  1. vi pod-tolerations.yaml
  2. apiVersion: v1
  3. kind: Pod
  4. metadata:
  5.   name: nginx-tole
  6.   namespace: default
  7.   labels:
  8.     app: nginx
  9.     release: canary
  10. spec:
  11.       containers:
  12.       - name: nginx-tole
  13.         image: 172.16.80.140/nginx/nginx:1.26
  14.         imagePullPolicy: IfNotPresent
  15.       tolerations:
  16.       - key: "node-type"
  17.         operator: "Equal"
  18.         value: "dev"
  19.         effect: "NoExecute"
  20.         tolerationSeconds: 3600
  21. kubectl apply -f pod-tolerations.yaml
  22. kubectl get pods -owide
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表