名词解释:
master(控制节点):
ApiServer:接受请求的唯一入口;
Scheduler:进行计算,决定是由哪一个工作节点node来进行服务的安装,只计算不调用;
Controller-manager:进行node节点的调用;
Etcd:存储master和node节点的信息,进行统一管理。
node(工作节点):
Kubelet:维护容器的生命周期,即通过控制docker,来创建、更新、销毁容器。
Kube-Proxy:负责提供集群内部的服务发现和负载均衡。
Docker:负责节点上容器的各种操作。
工作流程(以运行nginx为例):
1. 启动k8s环境,启动之后,将对应的master和node信息存储到etcd数据库中,方便进行统一管理。
2. 安装nginx请求发送至ApiServer组件中,ApiServer调用Scheduler进行计算。
3. Scheduler从etcd中读取各个node节点的信息,安装一定的算法进行选择,将结果返回至ApiServer。
4. ApiServer调用controller-manager去调用计算出的node节点来进行nginx的安装。
5. Kubelet接收到指令后,会通知docker来启动一个nginx的pod(pod是k8s的最小操作单元,容器必须跑在pod中)。
6. 此时一个nginx服务就运行了,若需要访问,则通过Kube-proxy来对pod产生访问的代理,从而外界就可以访问集群中的nginx服务了。