K8s 中调度器是如何知道所有要过滤的节点的

How scheduler knows about all the nodes for filtering in K8s

在学习k8s调度的时候, 我搜索了几个小时才知道调度程序是如何知道所有要过滤的节点的 但我没有得到有关它的信息。 我猜想调度程序通过 api-server 从 etcd 获取节点信息 这样对吗? 非常感谢未来的回复者

我建议你看看 Creating custom scheduler on kubrnetes which explains in details and open-sourced the project in Golang on this repository 上的这篇文章。

但简而言之,Api-Server 使用一些技术定期更新集群中的可用节点列表。 调度程序 使用Informers API 从API-Server 获取可用列表pods。此列表还使用 Informers 进行缓存,以减少 API 调用的次数。 Informer 也会监视 API-Server 节点列表上的新变化。
然后调度程序使用集成的任何算法将 pods 绑定到正确的节点。