目录
Master节点组件
master节点是集群管理中心,它的组件可以在集群内任意节点运行,但是为了方便管理所以会在一台主机上运行Master所有组件,并且不在此主机上运行用户容器
Master组件包括:
-
kube-apiserver
用于暴露kubernetes API,任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。(可看看上图,无论什么都会跟apiserver进行交互)
-
kube-controller-manager
控制器管理器,用于对控制器进行管理,它们是集群中处理常规任务的后台线程。
-
kube-scheduler
监视新创建没有分配到Node的Pod,为Pod选择一个Node运行。
-
ETCD
是kubernetes提供默认的存储系统,保存所有集群数据。
Node节点组件介绍
node节点用于运行以及维护Pod, 管理volume(CVI)和网络(CNI),维护pod及service等信息
Node组件包括:
-
kubelet
-
负责维护容器的生命周期(创建pod,销毁pod),同时也负责Volume(CVI)和网络(CNI)的管理
-
-
kube-proxy
-
通过在主机上维护网络规则并执行连接转发来实现service(iptables/ipvs)
-
随时与apiserver通信,把Service或Pod改变提交给apiserver,保存至etcd(可做高可用集群)中,负责service实现,从内部pod至service和从外部node到service访问。
-
-
Container Runtime
-
容器运行时(Container Runtime)
-
负责镜像管理以及Pod和容器的真正运行
-
支持docker/containerd/Rkt/Pouch/Kata等多种运行时
-
Add-ons介绍
Add-ons(附件)使功能更丰富,没它并不影响实际使用,可以与主体程序很好结合起来使用
-
coredns/kube-dns: 负责为整个集群提供DNS服务
-
Ingress Controller 为服务提供集群外部访问
-
Heapster/Metries-server 提供集群资源监控(监控容器可以使用prometheus)
-
Dashboard 提供集群GUI
-
Federation 提供跨可用区的集群
-
Fluentd-elasticsearch 提供集群日志采集、存储与查询