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挂载存储
相关推荐
CopyLower1 小时前
Quarkus 与 Micronaut 在云原生开发中的优势:深度解析与实践
云原生
意倾城1 小时前
Docker数据卷
docker·容器
whgjjim1 小时前
docker迅雷自定义端口号、登录用户名密码
运维·docker·容器
爱吃芝麻汤圆5 小时前
k8s之Kubebuilder 的设计哲学
云原生·容器·kubernetes
裁二尺秋风6 小时前
k8s(12) — 版本控制和滚动更新(金丝雀部署理念)
云原生·容器·kubernetes
项目題供诗6 小时前
黑马k8s(六)
云原生·容器·kubernetes
Why not try?!9 小时前
Centos7 中 Docker运行配置Apache
运维·docker·容器
techdashen9 小时前
性能比拼: Linkerd vs. Istio
云原生·istio
hnlucky9 小时前
如何彻底清空docker里面不使用的容器?
运维·docker·容器
一个天蝎座 白勺 程序猿14 小时前
Python爬虫(29)Python爬虫高阶:动态页面处理与云原生部署全链路实践(Selenium、Scrapy、K8s)
redis·爬虫·python·selenium·scrapy·云原生·k8s