除了在主机上运行的 Kubernetes 核心组件(如 api-server 、scheduler 、controller-manager)之外,还有许多插件,由于各种原因, 必须在常规集群节点(而不是 Kubernetes 主节点)上运行。 其中一些插件对于功能完备的群集至关重要,例如 Heapster、DNS 和 UI。 如果关键插件被逐出(手动或作为升级等其他操作的副作用)或者变成挂起状态,群集可能会停止正常工作。 关键插件进入挂起状态的例子有:集群利用率过高;被逐出的关键插件 Pod 释放了空间,但该空间被之前悬决的 Pod 占用;由于其它原因导致节点上可用资源的总量发生变化。
要将 pod 标记为关键性(critical),pod 必须在 kube-system 命名空间中运行(可通过参数配置)。
同时,需要将 priorityClassName
设置为 system-cluster-critical
或 system-node-critical
,后者是整个群集的最高级别。
或者,也可以为 Pod 添加名为 scheduler.alpha.kubernetes.io/critical-pod
、值为空字符串的注解。
不过,这一注解从 1.13 版本开始不再推荐使用,并将在 1.14 中删除。
此页是否对您有帮助?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.