Files
kuboard-press/learning/k8s-intermediate/config/taints-toleration/use-case.md
huanqing.shao 2724a740f7 错别字
2019-11-19 17:38:50 +08:00

24 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
vssueId: 97
titlePrefix: 污点和容忍
layout: LearningLayout
description: Kubernetes教程_在Kubernetes中_配置污点和容忍taints_and_toleration的使用案例
meta:
- name: keywords
content: Kubernetes教程,K8S教程,Kubernetes污点使用
---
# 使用案例
<AdSenseTitle/>
污点和容忍使用起来非常灵活,可以用于:
* 避免 Pod 被调度到某些特定的节点
* 从节点上驱逐本不应该在该节点运行的 Pod
具体的场景可能有:
* **专属的节点:** 如果您想将一组节点专门用于特定的场景,您可以为这些节点添加污点(例如 `kubectl taint nodes nodename dedicated=groupName:NoSchedule`)然后向对应的 Pod 添加容忍。带有这些容忍的 Pod 将可以使用这一组专属节点,同时也可以使用集群中的其他节点。如果您想进一步限制这些 Pod 只能使用这一组节点,那么您应该为这一组节点添加一个标签(例如 dedicated=groupName并为这一组 Pod 添加 node affinity或 node selector以限制这些 Pod 只能调度到这一组节点上。
* **带有特殊硬件的节点:** 集群中,如果某一组节点具备特殊的硬件(例如 GPU此时非常有必要将那些不需要这类硬件的 Pod 从这组节点上排除掉,以便需要这类硬件的 Pod 可以得到资源。此时您可以为这类节点添加污点(例如:`kubectl taint nodes nodename special=true:NoSchedule` 或者 `kubectl taint nodes nodename special=true:PreferNoSchedule`)并为需要这类硬件的 Pod 添加匹配的容忍。
* **基于污点的驱逐** 当节点出现问题时,可以使用污点以 Pod 为单位从节点上驱逐 Pod。进一步描述请参考 [基于污点的驱逐](./taint-based-evictions.html)