前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes资源创建流程解析

Kubernetes资源创建流程解析

作者头像
mikelLam
发布2022-10-31 14:40:34
6290
发布2022-10-31 14:40:34
举报
文章被收录于专栏:Kubernetes 与 Devops 干货分享

组件之间的通信

我们知道在Kubernetes集群中apiserver是整个集群的控制入口,etcd在集群中充当数据库的作用,只有apiserver才可以直接去操作etcd集群,而我们的apiserver无论是对内还是对外都提供了统一的REST API服务,包括一个8080端口的非安全服务和6443端口的安全服务。组件之间当然也是通过apiserver进行通信的,其中kube-controller-managerkube-schedulerkubelet是通过apiserver watch API来监控我们的资源变化,并且对资源的相关状态更新操作也都是通过apiserver进行的,所以说白了组件之间的通信就是通过apiserver REST APIapiserver watch API进行的

Pod创建工作流

下面图示为Pod的工作流程图

和上面的组件通信一致:

  • 第一步,kubelet将yaml发送给API
  • 第二步通过apiserver REST API 经过KubeConfig认证通过后,创建一个Pod
  • 然后apiserver接收到数据后将数据写入etcd
  • 由于kube-scheduler通过apiserver watch API一直在监听资源的变化,这个时候发现有一个新的Pod,但是这个时候该Pod还没和任何Node节点进行绑定,所以kube-scheduler就经过一系列复查的调度策略,选择出一个合适的Node节点,将该Pod和该目标Node绑定,当然也会更新到etcd中去
  • 这个时候一个的目标Node节点上的kubelet通过apiserver watch API检测到有一个新的Pod被调度过来了,他就将该Pod的相关数据传递给后面的容器进行时container runtime,比如Docker,让他们去运行该Pod,调用CNI接口创建Pod网络,调用CRI启动容器,调用CSI进行存储卷的挂载
  • 而且kubelet还会通过container runtime获取Pod的状态,网络,容器,存储创建完成后Pod创建完成,等业务进程启动后,Pod运行成功,然后更新到apiserver中,当然最后也是写入到etcd中去的

Deploy创建工作流

  • 第一步,kubelet将yaml发送给API
  • 第二步通过apiserver REST API 经过KubeConfig认证通过后,创建一个Pod
  • 然后apiserver接收到数据后将数据写入etcd
  • 由于controller manager通过apiserver watch api一直监听资源的变化,这个时候deployment controller发现了一个新的deplayment对象更后,根据deployment的描述创建一个ReplicaSet并将ReplicaSet对象返回apiserver并持久化回etcd
  • 由于kube-scheduler通过apiserver watch API一直在监听资源的变化,这个时候发现有一个新的Pod,但是这个时候该Pod还没和任何Node节点进行绑定,所以kube-scheduler就经过一系列复查的调度策略,选择出一个合适的Node节点,将该Pod和该目标Node绑定,当然也会更新到etcd中去。
  • 这个时候目标Node节点上的kubelet通过apiserver watch API检测到有一个新的Pod被调度过来了,他就将该Pod的相关数据传递给后面的容器进行时container runtime,比如Docker,让他们去运行该Pod,调用CNI接口创建Pod网络,调用CRI启动容器,调用CSI进行存储卷的挂载
  • 而且kubelet还会通过container runtime获取Pod的状态,网络,容器,存储创建完成后Pod创建完成,等业务进程启动后,Pod运行成功,然后更新到apiserver中,当然最后也是写入到etcd中去的。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组件之间的通信
  • Pod创建工作流
  • Deploy创建工作流
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档