1、kubernetes Controller plane Components
kubernetes集群架构图:
Controller plane Components 是用于kubernetes集群管理的,主要是由以下几个组件组成的:
(1)、kube-apiserver:
主要是用于暴露kubernetes容器API的,kube-apiserver可以通过部署多个实例来达到水平扩展的目的,并且通过负载均衡的方式去调用服务。
(2)、etcd
etcd是kubernetes默认的集群数据存储系统,它保存着所有集群的数据,是kubernetes默认的持久化方式,在使用的时候需要做好数据的备份,以防数据的丢失。
(3)、kube-scheduler
kube-scheduler是kubernetes 的一个定时组件,主要是用于监听那些新创建并且还未分配到具体Node的组件。
(4)、kube-controller-manager
kube-controller-manager 运行管理控制器,它们是集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成单个二进制文件,并在单个进程中运行。
这些控制器包括:
- 节点(Node)控制器。
- 副本(Replication)控制器:负责维护系统中每个副本中的pod。
- 端点(Endpoints)控制器:填充Endpoints对象(即连接Services&Pods)。
- Service Account和Token控制器:为新的Namespace 创建默认帐户访问API Token
(5)、cloud-controller-manager
cloud-controller-manager(云控制管理器),主要是负责与底层云提供商的api进行交互的组件,主要包含:
- 节点(Node)控制器
- 路由(Route)控制器
- 服务(Service)控制器
- 卷(Volume)控制器
二、节点(Node components)
Node组件可以运行在任何的node节点上,它提供了kubernetes的运行时环境,同时还兼顾着维护Pod
(1)、kubenet
kubernetes Node组件的节点代理,监视已分配给具体node的pod,具体职责:
- 安装Pod所需的卷(volume)。
- 下载Pod的Secrets。
- Pod中运行的 docker(或experimentally,rkt)容器。
- 定期执行容器健康检查。
- 在系统后台报告pod的运行状态,必要时刻还可以通过创建镜像pod去完成这些工作。
- 报告节点的运行状态
(2)、kube-proxy
它过在主机上维护网络路由规则,正是由于它的存在才使得集群内外都可以与Pod实现网络通信。
(3)、container runtime
用于运行容器的环境,kubernetes支持多种容器的运行时环境:如docker、containered、CRI-O等
三、kubernetes容器插件:
(1)、DNS
kubernetes 容器在运行集群的时候最好是有 集群域名服务(cluster-DNS),Kubernetes启动的容器自动将这个DNS服务器包含在他们的DNS searches中。
(2)、web-ui
kubernetes 集群 ui监控界面
(3)、container resource monitoring
kubernetes集群容器资源监控
(4)、custer-level loging
用于kubernetes 保存集群日志用的