kubernetes中master节点和node节点的组件

kubernetes中master中比较重要的组件

1)apiserver

k8s的重要组件之一,做为整个k8s集群的大脑,负责对外提供kubernetes的API服务,Master组件都经过调用APIserver提供的接口来实现各自的功能,生产环境通常也会对apiserver作高可用,多master架构。好比,deplotment Controller就经过apiserver来监控其管理的各个pod节点。node

2)scheduler

监听apiserver的新建pod副本信息,并经过调度算法计算一个合适node节点进行,而后将pod信息绑定到目标Node节点上,并把信息写入到etcd键值数据库中。绑定之后,Node上的kubelet就会接管pod接下来的声明周期管理。nginx

3)contronller-manager

维护整个集群的状态,故障检测,自动扩展,滚动更新等等。每一个集群都有对应的controller,这些controller经过apiserve监控节点资源状态,而这些控制器就是经过controller-manager进行管理。web

4)etcd

k8s的重要组件,为kubernetes提供一个高可用键值数据库,保存kubernetes集群资源中的全部的配置和集群资源对象的状态。全部的变动经过apiserver处理完之后存储在etcd键值库中,生产上通常使用多台组集群,通常为3,5等奇数台,偶数台会产生集群脑裂的问题。
kubernetes中master节点和node节点的组件算法

好比我新建一个Nginx的pod,首先经过kubectl命令或者web界面或者一些其余的api接口,调用APIserver新建pod,而后scheduler接受到APIserver想新建pod的需求后,就在经过算法计算我后端的那个Node节点比较合适,一旦绑定,把相关信息写入etcd键值库后,通知Node的kubelet组件,而后kubelet按照要求新建好pod,controller-manager经过pod的控制器进行维护nginx的pod状态等等docker

kubernetes中node中比较重要的组件

1)kubelet

负责pod的生命周期管理,监视分配给当前节点的pod,同时还与Master节点维护和管理Node上的全部容器,实现集群管理的基本功能。简单来讲kublet就是集群中的agent端,负责让pod的运行资源与指望的状态一致数据库

2)kube-proxy

实现service通讯和负载均衡的重要组件,将service的请求转发的后端节点的pod上。后端

3)docker

pod的运行环境,也能够是rkt容器,一个pod能够是一个或者一组容器。api

kubernetes中master节点和node节点的组件

kubernetes中其余比较重要的组件

1)CNI

一个标准的容器网络接口,支持k8s,docker等,因为其实一种标准库,因此,CNI的规范实现相对来讲较为简单,支持k8s的各类网络模型。服务器

2)coreDNS

实现了集群内部经过服务器名进行访问的解析。用于服务发现网络

相关文章
相关标签/搜索