
上QQ阅读APP看书,第一时间看更新
4.4 用例子把它们串起来
为了帮助大家更好地理解Kubernetes架构,我们部署一个应用来演示各个组件之间是如何协作的。
执行下列命令,结果如图4-6所示。


图4-6
等待一段时间,应用部署完成,如图4-7所示。

图4-7
Kubernetes部署了deployment httpd-app,有两个副本Pod,分别运行在k8s-node1和k8s-node2。
详细讨论整个部署过程,如图4-8所示。

图4-8
①kubectl发送部署请求到API Server。
②API Server通知Controller Manager创建一个deployment资源。
③Scheduler执行调度任务,将两个副本Pod分发到k8s-node1和k8s-node2。
④k8s-node1和k8s-node2上的kubectl在各自的节点上创建并运行Pod。
补充两点:
(1)应用的配置和当前状态信息保存在etcd中,执行kubectl get pod时API Server会从etcd中读取这些数据。
(2)flannel会为每个Pod都分配IP。因为没有创建service,所以目前kube-proxy还没参与进来。