Pod的创建流程
执行流程
-
执行命令连接API Server:
- 用户执行命令(例如创建RC资源),系统会加载位于
$HOME/.kube/config
的证书文件来验证与API Server
的连接。 - 假设用户正在创建一个副本数量为5的
ReplicationController
(RC)。此时,Pod 状态为Pending
,说明 Pod 尚未调度到集群中的节点。
- 用户执行命令(例如创建RC资源),系统会加载位于
-
API Server 请求处理:
- 当请求到达
API Server
时,首先进行身份验证和权限校验,确保用户具备相关资源的操作权限。 - 接着,
API Server
会解析用户提供的资源配置文件(如RC
配置文件),检查配置的有效性。
- 当请求到达
-
记录请求到 etcd:
- 如果权限校验通过,
API Server
会将请求记录下来,并将相关资源状态(例如副本数量、Pod 配置等)写入到etcd
数据库,以便持久化存储。
- 如果权限校验通过,
-
Control Manager 任务监控:
Control Manager
组件会查询API Server
,查看是否有任务需要进行状态更新或修复。- 发现有一个
ReplicationController
资源需要创建5个副本,但当前副本数为0时,Control Manager
会开始监听 (watch
) 事件,确保副本数量增加到5个。
-
调度过程:
Scheduler
会定期查询API Server
,检查是否有需要调度的 Pod。API Server
返回需要调度的 Pod 列表,以及集群中节点的资源状态(例如 CPU、内存等)。
-
调度结果存储:
- 一旦
Scheduler
确定了 Pod 的调度位置,它会将调度结果返回给API Server
。 API Server
将调度结果(例如将 Pod 分配到某个节点上)存储在etcd
中,作为集群状态的一部分。
- 一旦
-
Kubelet 上报节点与 Pod 状态:
Kubelet
作为每个节点上的组件,会定期向API Server
上报节点的资源状态(如 CPU、内存使用情况)以及其管理的 Pod 状态。
-
API Server 验证与任务下发:
API Server
会验证Kubelet
上报的证书文件,确保其身份合法。如果验证通过,API Server
会将相关的 Pod 任务信息(例如 Pod 的具体配置与调度任务)下发给对应的Kubelet
。
-
Pod 创建与状态上报:
Kubelet
开始在本节点上创建 Pod,并不断向API Server
上报 Pod 的状态(如容器的启动、运行状态等)以及节点的健康状况。API Server
会将 Pod 的最新状态记录在etcd
中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!