程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Kubernetes (k8s) 核心运行原理的流程图及文字说明

balukai 2025-07-09 10:58:11 文章精选 4 ℃

Kubernetes (k8s) 核心运行原理的流程图



核心步骤说明:

  1. 用户提交配置
    用户通过
    kubectl 提交 YAML/JSON 格式的资源配置清单(Deployment、Service 等)。
  2. API Server 接收请求
    kube-apiserver 验证请求合法性,将资源状态写入 etcd
  3. 状态持久化
    etcd 作为分布式键值存储,持久化保存集群所有状态数据。
  4. 控制器响应变更
    Controller Manager 中的控制器(如 Deployment Controller)通过 Informer 机制 监听资源变更:
  5. 比较当前状态与期望状态(例如:副本数不足时创建新 Pod)。
  6. 生成新的 Pod 配置并提交给 API Server。
  7. 调度器工作
    Scheduler 监听未绑定的 Pod:
  8. 过滤(Filter):排除不满足条件的 Node(如资源不足)。
  9. 打分(Score):对符合的 Node 优先级排序。
  10. 绑定(Bind):将 Pod 绑定到最优 Node(写入 etcd)。
  11. Node 节点执行
    kubelet 监听分配到本节点的 Pod:
  12. 调用 Container Runtime(如 containerd)拉取镜像、启动容器。
  13. 通过 CNI 插件配置容器网络。
  14. 服务发现与负载均衡
    kube-proxy 监听 Service 和 Endpoint 变化:
  15. 更新节点上的 iptables/IPVS 规则,实现服务负载均衡。
  16. 状态反馈
    kubelet 持续收集 Pod/容器状态上报给 API Server,最终写入 etcd

关键设计思想:

  • 声明式 API:用户声明“期望状态”,系统自动收敛到该状态。
  • 控制循环:控制器不断检查实际状态与期望状态的差异并修复。
  • 组件松耦合:通过 API Server 的 REST API 交互,组件可独立升级。
  • 事件驱动:基于 etcd 的 Watch 机制实现高效状态同步。

进阶流程示例(Deployment 扩缩容):


最近发表
标签列表