K8S的pod创建过程

创建流程图

  1. 用户发起请求创建deployment;
  2. apiserver收到创建资源的请求,apiserver对客户端操作进行身份认证,认证完成后接受该请求,并把相关的信息保存到etcd中,然后返回确认信息给客户端;
  3. apiserver向etcd持续反馈创建过程中Pod对象的变化;
  4. ControllerManager组件使用watch机制监听apiserver的信息,ControllerManager通过监听发现有新的deployment创建请求,那么ControllerManager会新创建一个Pod,当Pod刚被创建时,它的nodeName属性值为空,代表着此Pod未被调度;
  5. Scheduler组件使用watch机制监听apiserver上的信息,发现有未被调度的Pod,则根据内部算法、节点资源情况,选择最优的节点,然后将Pod绑定该节点,将信息反馈给apiserver;
  6. kubelet组件使用watch机制监听apiserver上的信息,发现有一个Pod应该要被调度到自身所在Node上来;
  7. kubelet从 etcd 获取 pod 清单,并:
  • 通过CRI启动容器
  • 通过CNI配置网络
  • 通过CSI挂载存储
相关推荐
Patrick_Wilson2 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
阿里云云原生2 天前
AI 开发新常态:当 Cursor、Claude、Codex 并行,如何统一管理散落的 Skill 资产?
云原生·ai编程
探索云原生2 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
云恒要逆袭2 天前
运行你的第一个Docker容器
后端·docker·容器
Java之美2 天前
从edge-trigger到level-trigger,谈谈 Kubernetes controller 的开发范式
云原生
阿里云云原生3 天前
深度解构:当 Append-only 的 SLS 遇上 Update/Delete,是如何实现设计权衡的?
云原生
Java之美3 天前
一次k8s升级引发的DevicePlugin注册失败
云原生·kubernetes
秋播3 天前
nerdctl推送rancher本地镜像到harbor
云原生
程序员老赵4 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程