Torres-tao  

Kubernetes组件通信

Kubernetes多组件之间的通信原理为:

  • API Server负责etcd存储的所有操作,且只有API Server才直接操作etcd集群
  • API Server对内(集群中的其他组件)和对外(用户)提供统一的REST API,其他组件均通过API Server进行通信
    • Controller Manager、Scheduler、Kube-proxy和Kubelet等均通过API Server watch API监测资源变化情况,并对资源做相应的操作
    • 所有需要更新资源状态的操作均通过API Server的REST API进行
  • API Server也会直接调用Kubelet API(如logs、exec、attach等),默认不校验Kubelet证书,但可以通过--kubelet-certificate-authority开启(而GKE通过SSH隧道保护它们之间的通信)

创建Pod的流程为:

  1. 用户通过REST API创建一个Pod
  2. API Server将其写入etcd
  3. Scheduler检测到未绑定Node的Pod,开始调度并更新Pod的Node绑定
  4. Kubelet检测到有新的Pod调度过来,通过Container Runtime运行该Pod
  5. Kubelet通过Container Runtime取到Pod状态,并更新到API Server中
posted on 2022-04-14 08:33  雷子锅  阅读(98)  评论(0编辑  收藏  举报