k8s调度的过程,各组件之间的配合解析

Kubernetes的调度过程涉及多个组件的协作,确保Pod被分配到合适的节点上运行。整个过程,各个组件各司其职,通过API Server协作,共同完成Pod的调度和运行。其中调度器负责决策,kubelet负责执行,控制器确保状态一致,etcd作为存储中枢,API Server作为通信枢纽。

图片描述如下:

文字描述如下:

1. ​用户提交Pod请求
  • 组件:​ kubectlAPI Serveretcd
  • 流程:​
    • 用户通过kubectl提交Pod配置。
    • kubectl将请求发送至API Server
    • API Server验证请求后,将Pod信息写入etcd,此时Pod状态为Pending(未调度)。
2. ​调度器检测未调度的Pod
  • 组件:​ SchedulerAPI Server
  • 流程:​
    • Scheduler通过Watch机制监听API Server,筛选nodeName为空的Pod。
    • 发现待调度Pod后,开始调度决策。
3. ​调度决策​
  • 组件:​ Scheduler
  • 流程:​
    • 过滤(Predicates):​ 排除不满足条件的节点(如资源不足、污点不容忍、节点Selector不匹配)。
    • 打分(Priorities):​ 对剩余节点评分(如资源均衡、亲和性策略),选择最优节点。
4. ​绑定Pod到目标节点
  • 组件:​ SchedulerAPI Serveretcd
  • 流程:​
    • Scheduler将目标节点信息通过API Server更新Pod配置。
    • API Server将更新后的Pod信息写入etcd
5. ​节点执行Pod创建
  • 组件:​ kubelet容器运行时kube-proxy
  • 流程:​
    • 目标节点的kubelet通过Watch监听到新Pod,调用容器运行时(如Docker/containerd)创建容器。
    • kubelet持续监控Pod状态,并上报至API Server
    • kube-proxy根据Service配置更新网络规则(如iptables/IPVS),确保Pod网络通信。
6. ​状态维护与故障处理
  • 组件:​ Controller ManagerAPI Server
  • 流程:​
    • Controller Manager中的控制器监控Pod状态,确保实际状态与期望一致。
    • 若节点故障,控制器触发重新调度流程,由Scheduler重新分配Pod。
7. ​其他协作机制
  • 存储卷绑定:​ PersistentVolume控制器管理存储卷与Pod的绑定。
  • 镜像拉取:​ kubelet根据ImagePullSecrets从镜像仓库拉取镜像。

用户 -> kubectl -> API Server -> etcd (存储Pod)

Scheduler (监听Pod/Node状态) -> API Server -> etcd (更新nodeName)

kubelet (创建容器) -> 容器运行时

kube-proxy (配置网络)

Controller Manager (确保状态一致)

组件协作示意图

关键点总结

  • API Server :作为集群的中枢,所有组件通过它与etcd交互。
  • Scheduler:仅负责决策,不直接操作Pod或节点。
  • kubelet:负责Pod生命周期管理,与容器运行时协作。
  • 声明式设计:各组件通过监听和更新资源状态,实现最终一致性。
相关推荐
资源开发与学习3 小时前
Kubernetes集群核心概念 Service
kubernetes
阿里云云原生5 小时前
【云栖大会】AI原生、AI可观测、AI Serverless、AI中间件,4场论坛20+议题公布!
云原生
容器魔方5 小时前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
muyun280010 小时前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
Nazi611 小时前
k8s的dashboard
云原生·容器·kubernetes
傻傻虎虎16 小时前
【Docker】常用帮忙、镜像、容器、其他命令合集(2)
运维·docker·容器
是小崔啊16 小时前
叩丁狼K8s - 概念篇
云原生·容器·kubernetes
AKAMAI1 天前
Sport Network 凭借 Akamai 实现卓越成就
人工智能·云原生·云计算
ajax_beijing1 天前
zookeeper是啥
分布式·zookeeper·云原生
summer_west_fish1 天前
2023年系统分析师上半年论文试题分析
kubernetes