k8s学习笔记4——taints & tolerations
污点Taints 和 容忍度Tolerations 上用于 节点亲和性Node Affinity 的高级特性
一. 污点 Taints
污点是 Node 上的标记,表示该节点不应该接受任何Pod,除非Pod有相应的容忍度。
污点格式 key=value:effect
effect有以下3种:
- PreferNoSchedule :尽量避免没有相应容忍度的Pod被调度到该节点,除非没有其他节点可调度
- NoSchedule :阻止所有没有相应容忍度的Pod被调度至该节点,但不会影响当前Node上已有的Pod
- NoExecute :不仅阻止调度,还会驱逐节点上的Pod,除非它们有相应容忍度
kubectl describe node node01 # 查看污点标签 kubectl taint node node01 key=value:effect # 设置污点标签 kubectl taint node node01 key=value:effect- # 删除污点标签
二. 容忍度 Tolerations
容忍度是 Pod 的配置,允许Pod忽略特定的污点并调度到具有该污点的节点上
每个容忍度都有 一个键、一个操作符、一个值和一个效果
- key :必须与污点的key匹配
- operator :Equal 或 Exists
- value :与污点的value匹配
- effect :通常与污点的effect一致,为空表示所有
可在Pod的spec中添加一个容忍度
#vim myphp.yaml ===容忍 k=v1:NoSchedule 污点=== kind: Pod apiVersion: v1 metadata: name: myphp spec: tolerations: - operator: Equal # 精确匹配 key: k # 为空代表任意键值对 value: v1 effect: NoSchedule # 为空代表所有污点效果 containers: - name: myphp image: myos:php-fpm
#vim myphp.yaml ===容忍 k=*:NoSchedule 污点=== kind: Pod apiVersion: v1 metadata: name: myphp spec: tolerations: - operator: Exists # 模糊匹配,存在即可 key: k effect: NoSchedule containers: - name: myphp image: myos:php-fpm
posted on 2025-09-17 10:08 Karlkiller 阅读(9) 评论(0) 收藏 举报
浙公网安备 33010602011771号