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 绑定到正确的节点。
在学习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 绑定到正确的节点。