随笔 - 307  文章 - 0  评论 - 5  阅读 - 4264

Pod的创建流程

执行流程

  1. 执行命令连接API Server:

    • 用户执行命令(例如创建RC资源),系统会加载位于 $HOME/.kube/config 的证书文件来验证与 API Server 的连接。
    • 假设用户正在创建一个副本数量为5的 ReplicationController(RC)。此时,Pod 状态为 Pending,说明 Pod 尚未调度到集群中的节点。
  2. API Server 请求处理:

    • 当请求到达 API Server 时,首先进行身份验证和权限校验,确保用户具备相关资源的操作权限。
    • 接着,API Server 会解析用户提供的资源配置文件(如 RC 配置文件),检查配置的有效性。
  3. 记录请求到 etcd:

    • 如果权限校验通过,API Server 会将请求记录下来,并将相关资源状态(例如副本数量、Pod 配置等)写入到 etcd 数据库,以便持久化存储。
  4. Control Manager 任务监控:

    • Control Manager 组件会查询 API Server,查看是否有任务需要进行状态更新或修复。
    • 发现有一个 ReplicationController 资源需要创建5个副本,但当前副本数为0时,Control Manager 会开始监听 (watch) 事件,确保副本数量增加到5个。
  5. 调度过程:

    • Scheduler 会定期查询 API Server,检查是否有需要调度的 Pod。
    • API Server 返回需要调度的 Pod 列表,以及集群中节点的资源状态(例如 CPU、内存等)。
  6. 调度结果存储:

    • 一旦 Scheduler 确定了 Pod 的调度位置,它会将调度结果返回给 API Server
    • API Server 将调度结果(例如将 Pod 分配到某个节点上)存储在 etcd 中,作为集群状态的一部分。
  7. Kubelet 上报节点与 Pod 状态:

    • Kubelet 作为每个节点上的组件,会定期向 API Server 上报节点的资源状态(如 CPU、内存使用情况)以及其管理的 Pod 状态。
  8. API Server 验证与任务下发:

    • API Server 会验证 Kubelet 上报的证书文件,确保其身份合法。如果验证通过,API Server 会将相关的 Pod 任务信息(例如 Pod 的具体配置与调度任务)下发给对应的 Kubelet
  9. Pod 创建与状态上报:

    • Kubelet 开始在本节点上创建 Pod,并不断向 API Server 上报 Pod 的状态(如容器的启动、运行状态等)以及节点的健康状况。
    • API Server 会将 Pod 的最新状态记录在 etcd 中。
posted on   Leo-Yide  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示