Kubernetes 内部组件与功能详解
1. Pod 高级调度
在 Kubernetes 中,Pod 调度是一个复杂的过程,受到多种因素的影响。当两个节点由云基础设施提供时,为了节省成本,可能将 Pod 调度到第一个节点,并将第二个节点归还给云提供商。
对于多个 Pod 副本,理想情况下应将它们分散到尽可能多的节点上,而不是全部调度到单个节点。因为单个节点故障可能导致由这些 Pod 支持的服务不可用,而分散部署可以减少这种影响。
默认情况下,属于同一 Service 或 ReplicaSet 的 Pod 会分散到多个节点,但这并非绝对。可以通过定义 Pod 亲和性和反亲和性规则来强制 Pod 在集群中分散或聚集。
1.1 使用多个调度器
可以在集群中运行多个调度器,而不是单个调度器。对于每个 Pod,可以通过在 Pod 规范中设置 schedulerName 属性来指定应该调度该 Pod 的调度器。
- 未设置此属性的 Pod 以及 schedulerName 设置为 default - scheduler 的 Pod 将使用默认调度器进行调度。
- 其他 Pod 将被默认调度器忽略,需要手动调度或由其他关注此类 Pod 的调度器进行调度。
可以实现自己的调度器并部署到集群中,也可以部署具有不同配置选项的 Kubernetes 调度器的额外实例。
2. 控制器管理器中的控制器
API 服务器仅负责在 etcd 中存储资源并通知客户端资源更改,调度器仅为 Pod 分配节点。为了确保
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



