Kubernetes 调度器 - 污点

先建立一个pod4

kubectl apply -f pod4.yaml

这个pod有node亲和性,指定到了cluster-3

复制代码
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod4
  labels:
    app: myapp-pod4
    version: v1
spec:
  containers: 
  -  name: myapp-pod4
     image: nginx
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - xgcloud-ops-k8s-cluster-3.novalocal
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - xgcloud-ops-k8s-cluster-5.novalocal
复制代码

 

kubectl get pod -o wide

 

给node打污点:

# 设置污点 
kubectl taint nodes node1 key1=value1:NoSchedule 
# 节点说明中,查找 Taints 字段 
kubectl describe pod pod-name 
# 去除污点 
kubectl taint nodes node1 key1:NoSchedule-

 

加污点:

kubectl taint nodes xgcloud-ops-k8s-cluster-3.novalocal check=wtl:NoExecute

删除污点:

kubectl taint node xgcloud-ops-k8s-cluster-3.novalocal check=wtl:NoExecute-  

查看污点:

kubectl describe node/xgcloud-ops-k8s-cluster-3.novalocal

 

 

 

 

 

 因为不是deployment,所以pod被驱逐之后没有在建立,就没了

 

容忍(tolerations)

如果 operator 的值是 Exists,则 value 属性可省略

如果 operator 的值是 Equal,则表示其 key 与 value 之间的关系是 equal(等于)

如果不指定 operator 属性,则默认值为 Equal

另外,还有两个特殊值: 空的 key 如果再配合 Exists 就能匹配所有的 key 与 value,也就是是能容忍所有节点的所有 Taints 空的 effect 匹配所有的 effect

 

给pod4设置容忍

复制代码
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod4
  labels:
    app: myapp-pod4
    version: v1
spec:
  containers: 
  -  name: myapp-pod4
     image: nginx
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - xgcloud-ops-k8s-cluster-3.novalocal
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - xgcloud-ops-k8s-cluster-5.novalocal
  tolerations:
  - key: "check"
    operator: "Equal"
    value: "wtl"
    effect: "NoExecute"
    tolerationSeconds: 3600
复制代码

 

kubectl get pod -o wide

 

posted @   大川哥  阅读(141)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示