- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Kubernetes 调度程序是仅根据请求的资源和节点在服务器当前快照中的可用资源将 Pod 放置在节点上,还是同时考虑节点的历史资源利用率?
1 Câu trả lời
在官方Kubernetes documentation我们可以找到 kube-scheduler
用于为 pod 选择节点的过程和指标。
基本上这是一个两步过程:
kube-scheduler selects a node for the pod in a 2-step operation:
- Filtering
- Scoring
过滤步骤负责获取实际能够运行 pod 的节点列表:
Các filtering step finds the set of Nodes where it's feasible to schedule the Pod. For example, the PodFitsResources filter checks whether a candidate Node has enough available resource to meet a Pod's specific resource requests. After this step, the node list contains any suitable Nodes; often, there will be more than one. If the list is empty, that Pod isn't (yet) schedulable.
评分步骤负责从过滤步骤生成的列表中选择最佳节点:
In the scoring step, the scheduler ranks the remaining nodes to choose the most suitable Pod placement. The scheduler assigns a score to each Node that survived filtering, basing this score on the active scoring rules.
Finally, kube-scheduler assigns the Pod to the Node with the highest ranking. If there is more than one node with equal scores, kube-scheduler selects one of these at random.
当得分最高的节点被选中时,调度器通知API服务器:
...picks a Node with the highest score among the feasible ones to run the Pod. The scheduler then notifies the API server about this decision in a process called binding.
Factors that are taken into consideration for scheduling :
有关参数的更多详细信息,请参见đây :
The following predicates implement filtering:
PodFitsHostPorts
: Checks if a Node has free ports (the network protocol kind) for the Pod ports the Pod is requesting.PodFitsHost
: Checks if a Pod specifies a specific Node by its hostname.PodFitsResources
: Checks if the Node has free resources (eg, CPU and Memory) to meet the requirement of the Pod.MatchNodeSelector
: Checks if a Pod's Node Selector matches the Node's label(s).NoVolumeZoneConflict
: Evaluate if the Volumes that a Pod requests are available on the Node, given the failure zone restrictions for that storage.NoDiskConflict
: Evaluates if a Pod can fit on a Node due to the volumes it requests, and those that are already mounted.MaxCSIVolumeCount
: Decides how many CSI volumes should be attached, and whether that's over a configured limit.PodToleratesNodeTaints
: checks if a Pod's tolerations can tolerate the Node's taints.CheckVolumeBinding
: Evaluates if a Pod can fit due to the volumes it requests. This applies for both bound and unbound PVCs.
The following priorities implement scoring:
SelectorSpreadPriority
: Spreads Pods across hosts, considering Pods that belong to the same Dịch vụ, StatefulSet hoặc ReplicaSet.InterPodAffinityPriority
: Implements preferred inter pod affininity and antiaffinity.LeastRequestedPriority
: Favors nodes with fewer requested resources. In other words, the more Pods that are placed on a Node, and the more resources those Pods use, the lower the ranking this policy will give.MostRequestedPriority
: Favors nodes with most requested resources. This policy will fit the scheduled Pods onto the smallest number of Nodes needed to run your overall set of workloads.RequestedToCapacityRatioPriority
: Creates a requestedToCapacity based ResourceAllocationPriority using default resource scoring function shape.BalancedResourceAllocation
: Favors nodes with balanced resource usage.NodePreferAvoidPodsPriority
: Prioritizes nodes according to the node annotationscheduler.alpha.kubernetes.io/preferAvoidPods
. You can use this to hint that two different Pods shouldn't run on the same Node.NodeAffinityPriority
: Prioritizes nodes according to node affinity scheduling preferences indicated in PreferredDuringSchedulingIgnoredDuringExecution. You can read more about this in Assigning Pods to Nodes.TaintTolerationPriority
: Prepares the priority list for all the nodes, based on the number of intolerable taints on the node. This policy adjusts a node's rank taking that list into account.ImageLocalityPriority
: Favors nodes that already have the container images for that Pod cached locally.ServiceSpreadingPriority
: For a given Service, this policy aims to make sure that the Pods for the Service run on different nodes. It favours scheduling onto nodes that don't have Pods for the service already assigned there. The overall outcome is that the Service becomes more resilient to a single Node failure.EqualPriority
: Gives an equal weight of one to all nodes.EvenPodsSpreadPriority
: Implements preferred pod topology spread constraints.
回答你的问题:
Does it take into account the node's historical resource utilization?
可以看到,在上面的列表中没有与历史资源利用率相关的参数。另外,我做了研究,但没有找到任何相关信息。
关于kubernetes - Kubernetes 调度器依赖于哪些指标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69135736/
我想知道如果一个人需要并行处理项目 A、B 和 C,其中 A 依赖于 B,B 依赖于 C,那么完美的工作流程是什么。 目前,我将所有内容都放在一个存储库中,这加快了早期开发速度。所以我的工作目录如下所
尝试测试这款外观精美的 gem - http://icelab.com.au/articles/welcome-to-the-omnisocial/ - 这 promise 可以将 Twitter 和
因为每个版本flutter_localizations来自 SDK 取决于 intl 0.17.0而 fstore 依赖于 intl ^0.16.1 , 禁止来自 SDK 的 flutter_loca
类似于Typescript: Type of a property dependent on another property within the same object我想要一种属性依赖的类型。
我需要计算分页的结果数。 演示查询 select A.order_id, IF( E.assign_date IS NOT NULL AND E.assign_dat
我的表中有一个项目列表,其中包含字段 votes_up 和 votes_down 以及其他字段。现在我想根据这两个字段的功能根据受欢迎程度订购商品。问题在于受欢迎程度的算法取决于 votes_up 的
cloud_firestore:^0.14.4firebase_auth: ^0.18.4+1smooth_star_rating: ^1.0.4地理点:^0.7.1geoflutterfire: ^
是否可以定义两个不同的 PatternLayouts 并依赖于它使用第一个或第二个的应用程序 LogLevel? 示例: 如果我使用默认的 ERROR 级别运行我的应用程序,它应该打印如下日志语句:
我有一个函数 template void frobnicate()做的东西。我需要 T 成为少数几个选择类型之一,并且我需要一些关于这些类型的信息。我通过提供特征来做到这一点: template st
我目前正在开发我的一个项目,它是一个类似于 MSPaint 的 WPF 应用程序。但是,我不使用铅笔工具或类似的工具,而是使用对象(矩形、圆形、三角形等)进行绘画。我使用 Prism 和 MVVM 模
我在 ftable 周围写了一个包装器因为我需要计算许多变量的频率和百分比的平面表: mytable <- function(...) { tab <- ftable(...,
如果可以在 Gradle 中使用来自其他项目的任务,我想尝试一下。假设 ProjectB 是一个 src/main/groovy 包含 com.MyTask 的项目,有父 ProjectA 在 Pro
我需要测试一些依赖于当前上下文的静态方法。现在,我当然可以使用 HttpContextWrapper 从我自己的代码中删除这种依赖性。问题在于我在这些方法中使用的第 3 方 API。他们依赖于 Htt
我正在尝试创建一个通用的结构,具有通用实现特征的界限。特征本身是通用的。这是在 Rust 1.49.0 中。 如果我这样做: trait Foo {} struct Baz> { x: F,
如果 Makefile 本身被更改,一个安全的赌注是将所有目标视为过时的。 有没有聪明的方法来添加这种依赖?有没有其他选择? 最佳答案 一个安全的赌注,但一个可怕的想法。示例:您正在使用 automa
我有一种情况,我需要根据远程文件在 make 中执行规则。这是我正在尝试做的一个例子(实际的 Makefile 在这里不相关的方式要复杂得多): URL = http://cdn.sstatic.ne
这是我的第一个 Spring 应用程序,所以请原谅我对此事的无知。 我在 @Autowired 依赖项上遇到 NullPoinerException。 14:08:48,415 SEVERE [com
我在编程方面没有太多经验,所以这是我的问题: 我正在尝试编写一个转换器应用程序。最后,您可以输入一个数字。然后我有两个组件UIPickerView .使用第一个组件,您可以选择输入格式(例如 °Cel
假设我在 Haxe 中有以下类: class Pair { public var first:U = null; public var second:V = null; pub
在很多与向服务器发送请求相关的问题的回答中,我看到提倡使用 Javascript/AJAX。 从某种意义上说,我仍然是一个纯粹主义者,因为我首先尝试开发无需使用 Javascript/AJAX 即可完
Tôi là một lập trình viên xuất sắc, rất giỏi!