K8S之Scheduler

1.Scheduler的调度流程

Kubernetes Scheduler在整个系统中承担了"承上启下"的重要功能,"乘上"指的是它负责接受Controller Manager创建新的Pod,为其安排一个落脚的"家":目标Node;"启下"是指安置工作完成后,目标Node上的Kubelet服务进程接管后续工作,负责Pod声明周期的"下半生";

Kubernetes Scheduler的作用是将待调度的Pod(API新创建的Pod、Controller Manager为补足副本而创建的Pod等)按照特定的调度算法和调度策略绑定(Binding)到集群中某个适合的Node上,并将绑定信息写入到etcd中。涉及的三个对象:待调度的Pod、可用Node列表、调度算法和策略

随后目标Node的Kubelet通过API Server监听到 Kubemetes Scheduler产生的Pod绑定事件 ,然后获取对应的Pod清单,下载 mage镜像并启动容器,完整流程图如下:

Scheduler只跟API Server打交道,输入为:待调度的Pod和全部计算机节点的信息,输出为:目标Pod要"安家"的最有节点(或者暂时不存在)

Scheduler的调度流程主要包含2个阶段:过滤(Filtering)和打分(scoring)

1.过滤阶段:遍历所有的目标Node,筛选出符合Pod要求的候选节点。其具体方式是通过一系列特定的Filter对每个 ode都进行筛选,筛选完成后通常会有 多个候选节点供调度,从而进入打分阶段;如果结果集为空,则表示当前还没有符合条件的Node节点,Pod会维持在 Pending状态。

2.打分阶段:在过滤阶段的基础上,采用优选策略 (xxx Priorities ) 计算出每个候选节点的积分,积分最高者胜出,因为积分最高者表示最佳人选 。 挑选出最佳节点后,Scheduler 会把目标Pod安置到此节点上,调度完成 。

相关推荐
深思慎考16 小时前
微服务即时通讯系统(服务端)——用户子服务实现逻辑全解析(4)
linux·c++·微服务·云原生·架构·通讯系统·大学生项目
IT古董17 小时前
Windows 11 专业版 安装与配置 Docker Desktop 保姆级手册(包成功永久免关注免VIP)
windows·docker·容器
Red丶哞18 小时前
Docker 安装部署Prometheus
linux·云原生·容器·kubernetes
紫神19 小时前
kubeedge安装并接入摄像头操作说明
云原生·kubernetes·edge
serendipity_hky19 小时前
【微服务 - easy视频 | day02】全局过滤器+局部过滤器+全局拦截器
spring cloud·微服务·云原生·架构
风无雨20 小时前
windows docker 配置镜像
运维·docker·容器
java_logo21 小时前
NGINX WEBUI Docker 容器化部署指南
运维·nginx·docker·容器·centos·rabbitmq·运维开发
运维 小白1 天前
k8s 部署MySQL主从集群(一主两从)1.0
mysql·容器·kubernetes
ζั͡山 ั͡有扶苏 ั͡✾1 天前
完善EKF可观测性体系:基于ElastAlert2构建k8s智能钉钉日志告警系统
容器·kubernetes·钉钉·kibana·filebeat·日志监控
i小杨1 天前
Docker 相关使用收录
docker·容器·eureka