k8s创建pod过程

通过图片进行解释

etcd键值库只对API server开放,API server就是k8s集群中的控制中心,一般对API server所在的Master做集群,避免因单点故障影响k8s集群中业务的访问。

  • 通过kubectl命令输入create pod命令
  • 创建命令到达API server后,API server把创建pod的信息写入到etcd键值库中
  • API server把创建新pod的需求传给scheduler,scheduler通过算法计算分配到合适的Node节点,分配绑定到后端Node上的信息传回至API server,API server在把此信息写入到etcd键值库中
  • API server传递新建pod信息至Scheduler指定node节点的kubelet程序,kubelet接管后,创建出本地指定的container后,完成信息返回至API server
  • API server把新建好的pod信息写入到etcd键值库中
  • 至此,一个简单的kubectl create POD_NAME ***就新建完成

创建pod节点的service

  • 通过kubectl提交一个pod的service创建请求
  • Controller Manager会通过对应的Label标签查询到相关的pod实例,生成Serveice的Endpoints信息,并通过API server写入到etcd键值库中
  • Worker Node节点上的kube proxy通过API server查询并监听service对象与其对应的Endpoints信息(服务发现),创建一个类似负载均衡器实现Service访问到后端Pod的流量转发功能(负载均衡)。