- 用户通过“kubectl”部署一个新的应用程序。Kubectl将请求发送到API服务器。
- API服务器接收请求并将其存储在数据存储(etcd)中。将请求写入数据存储后,API服务器将完成请求。
- 监视器检测资源变化并向控制器发送通知以对其进行操作。
- Controller会检测新应用并创建新的pod以匹配所需的实例数量。将拾取对存储模型的任何更改以创建或删除Pod。
- 调度程序根据条件为节点分配新的pod。Scheduler决定在集群中的特定节点上运行Pod。调度程序使用节点信息修改模型。
- 节点上的Kubelet检测到具有自身分配的pod,并通过容器运行时(例如Docker)部署所请求的容器。每个节点都会监视存储,以查看它分配给哪些pod运行。它对分配给它的资源采取必要的操作,如创建/删除Pod。
- Kubeproxy管理容器的网络流量 - 包括服务发现和负载平衡。Kubeproxy负责想要进行交互的Pod之间的通信。