一、Kubernetes
1、Kubernetes 是什么
二、Kubernetes原理
1、maste-node 架构
- master:主节点,可以有很多
-
node:work节点(工作节点),可以有很多,这是真正运行应用的节点
maste-node 架构.png
2、工作原理 工作原理.png
master节点(Control Plane [控制面板])
master 节点控制整个集群
1、master节点上的核心组件
- 1、Controller Manager(c-m):控制管理器
- 2、etcd:键值数据库(如Redis)
- 3、scheduler:调度器
- 4、api server:api网关,所有的控制都需要通过api-server
- 5、kubelet
-
6、kube-proxy
master节点.png
2、node节点(work工作节点)
- kubelet:每个node节点上必须的组件
-
kube-proxy:网络代理
node节点.png - docker run 启动的是一个 container(容器),容器是docker的基本单位,一个应用是一个容器
- kubelet run 启动的一个应用称为一个Pod,Pod是k8s的基本单位
- Pod 是容器的一个再封装
三、Master与Node交互原理 Master与Node交互原理.png
如让 k8s 部署一个Tomcat
- 0、开机默认所有节点的kubelet,Master节点的scheduler(调度器)、controller-manager(控制管理器)一直监听Master的api-server发来的事件变化
- 1、程序员使用命令行工具: kubectl ; kubectl create deploy tomcat --image=tomcat8(告诉master让集群使用tomcat8镜像,部署一个tomcat应用)
- 2、kubectl命令行内容发给api-server,api-server保存次次创建信息到 etcd
- 3、etcd 给api-server上报部署Tomcat事件,
- 4、controller-manager监听到了api-server的部署Tomcat事件
- 5、controller-manager处理这个部署Tomcat的事件,controller-manager会生成 Pod 的部署信息
- 6、controller-manager 把 Pod 的信息交给 api-server,再次保存到etcd
- 7、etcd 上报事件给api-server
- 8、scheduler负责监听Pod信息,拿到 Pod信息的内容,计算选择一个适合部署这个 Pod 的节点
- 9、scheduler会把 Pod部署到那个节点 的信息交给 api-server
- 10、api-server 会把 Pod部署到那个节点 的信息保存到etcd
- 11、etcd 上报事件【Pod部署到那个节点 】给api-server
- 12、其他work节点的kubelet专门监听 【Pod部署到那个节点】 事件,集群所有节点kubelet从api-server就拿到了 【Pod部署到那个节点】 事件
- 13、每个node节点的kubelet判断是否属于自己
- 14、如果是自己该完成任务,该node的kubelet启动这个pod。汇报给master当前启动好的所有信息
网友评论