微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kubernetes QoS 与调度关系的澄清

如何解决Kubernetes QoS 与调度关系的澄清

根据https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/

Kubernetes 使用 QoS 类来决定调度和驱逐 Pod。

我不明白 QoS 类与调度有什么关系?该文档提到 QoS 类决定了节点资源耗尽时的驱逐顺序。

另一方面,调度使用 pod 优先级(PriorityClass)来设置调度顺序和抢占。

我的问题是 QoS 和调度之间的联系是什么?

解决方法

我的问题是 QoS 和调度之间的联系是什么?

根据https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/

kube-scheduler 分两步为 pod 选择一个节点:

Filtering
Scoring

过滤步骤找到可行的节点集 安排 Pod。例如,PodFitsResources 过滤器检查 候选节点是否有足够的可用资源来满足 Pod 的需求 特定的资源请求。在这一步之后,节点列表包含 任何合适的节点;通常,会有不止一个。如果列表是 空的,那个 Pod(还)不是可调度的。

在评分步骤中,调度器对剩余的节点进行排名以供选择 最合适的 Pod 放置。调度器为每个分配一个分数 在过滤后幸存下来的节点,基于主动评分 规则。

最后,kube-scheduler 将 Pod 分配给最高的 Node 排行。如果有多个节点的分数相同, kube-scheduler 随机选择其中之一。

因此 QoS 在相应 PodFitsResources 过滤器的 kube-scheduler 操作的过滤步骤中起作用。

根据https://kubernetes.io/docs/reference/scheduling/policies/

PodFitsResources:检查节点是否有空闲资源(例如,CPU 和 内存)来满足 Pod 的要求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。