16.6.2. 关于 pod 优先级
当启用 Pod 优先级和抢占功能时,调度程序会按照优先级调度待处理 pod,并将待处理 pod 放在调度队列中优先级较低的其他待处理 pod 的前面。因此,如果达到调度要求,较高优先级的 pod 可能比低优先级的 pod 更早调度。如果 pod 无法调度,调度程序会继续调度其他较低优先级 pod。
16.6.2.1. Pod 优先级类 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以为 pod 分配一个优先级类,它是一种非命名空间的对象,用于定义从名称到优先级整数值的映射。数值越大,优先级越高。
优先级类对象可以取小于或等于 1000000000(十亿)的 32 位整数值。对于不应被抢占或驱除的关键 pod,可保留大于十亿的数值。默认情况下,OpenShift Container Platform 有两个保留优先级类,用于需要保证调度的关键系统 pod。
- system-node-critical - 此优先级类的值为 2000001000,用于不应从节点驱除的所有 pod。具有此优先级类的 pod 示例有 sdn-ovs 和 sdn 等。
-
system-cluster-critical - 此优先级类的值为 2000000000(二十亿),用于对集群而言很重要的 pod。在某些情况下,具有此优先级类的 Pod 可以从节点中驱除。例如,配置了
system-node-critical
优先级类的 pod 可以拥有优先权。不过,此优先级类确实能够保证调度。具有此优先级类的 pod 示例有 fluentd 以及 descheduler 这样的附加组件等。
注意
如果升级现有的集群,则现有 pod 的优先级相当于为零。不过,带有 scheduler.alpha.kubernetes.io/critical-pod
注解的现有 pod 会自动转换为 system-cluster-critical
类。