本章介绍下kubernetes的一些组件。在说组件之前,我们先来一个kubernetes的架构图。
从上图中我们可以看到kubernetes的组件有哪些,接下来我们使用表格的方式展示下kubernetes的组件。
序号 | 组件 | 子组件 |
1 | Master组件 | kube-apiserver |
etcd | ||
kube-scheduler | ||
kube-controller-manager | ||
cloud-controller-manager | ||
2 | Node组件 | kubelet |
kube-proxy | ||
容器引擎 | ||
3 | Addons | DNS |
Web UI(Dashboard) | ||
Kuboard | ||
ContainerResource Monitoring | ||
Cluster-level Logging |
下面分别介绍下kubernetes的这些组件的含义。
一、master组件:
master组件是整个kubernetes集群的控制平台,他可以运行在集群中的任何机器上,在部署的时候,我们就需要对节点进行规划,哪些节点可以是master节点。 同时,master节点还要做以下事情: 1、负责集群中的全局决策,例如调度等。 2、负责探测并响应集群事件,例如我们在部署的时候,pod需要两个,那么master会对pod进行探测,如果replicas没有达到2,则会启动一个新的pod。
备注:
1、我们在安装部署的时候,一定要规划出来master节点。
2、master节点的服务器上,一般专门用来做master节点,并且启动所有的master组件。
3、一般我们不会在master节点上规划容器节点,也就是master节点不会起pod。
1.1、kube-apiserver
这个组件主要是管理kubernetes集群的api,这是整个kubernetes集群控制平台的最前端,可以理解成于java接口里面的controller。
1.2、etcd
在kubernetes中,etcd主要是作为存储配置中心,kubernetes集群中的所有配置信息都是存储在etcd中的。
备注:在kubernetes集群安装的时候,我们还需要规划处etcd节点。而且需要经常对etcd信息进行备份。
1.3、kube-scheduler
kube-scheduler组件可以看做是一个监控和调度组件,他的主要作用就是,当master节点监控到pod的replicas数量不足的时候(例如分配的是2个,但是现在只启动了一个),那此时kube-scheduler就会自动创建pod副本,并且选择一个合适的节点去运行。所以可以看做是调度组件即可。
1.4、kube-controller-manager
这个组件就是一个控制器管理组件,这个kube-controller-manager中包含的控制器有以下几种:
1、节点控制器:负责监听节点停机的事件并作出对应响应。 2、副本控制器:负责为集群中每一个副本控制器对象维护期望的pod副本数。 3、端点控制器:负责为端点对象赋值。 4、Service Account & Token控制器:负责为新的名称空间创建default Service Account 以及 API Access Token
1.5、cloud-controller-manager
这个控制器一般我们可以忽略掉,这个主要是与第三方云供应商相关联的控制器,例如:节点控制器,路由控制器,服务控制器,数据卷。这些主要与云厂商绑定,一般我们内部安装的集群都不会安装这个组件。所以直接忽略掉吧。
二、Node组件
node组件运行在每一个node节点上,就是在安装的时候,我们规划了node节点,那么这些节点上都会有node组件。node节点顾名思义就是运行pod的节点。node组件主要是负责维护运行中的pod并提供kubernetes运行时环境。
2.1、kubelet
此组件是运行在每一个集群节点上的代理程序。它确保 Pod 中的容器处于运行状态。Kubelet 通过多种途径获得 PodSpec 定义,并确保 PodSpec 定义中所描述的容器处于运行和健康的状态。Kubelet不管理不是通过 Kubernetes 创建的容器。 #kube-proxy
2.2、kube-proxy
kube-proxy 是一个网络代理程序,运行在集群中的每一个节点上,是实现 Kubernetes Service 概念的重要部分。 kube-proxy 在节点上维护网络规则。这些网络规则使得您可以在集群内、集群外正确地与 Pod 进行网络通信。如果操作系统中存在 packet filtering layer,kube-proxy 将使用这一特性(iptables代理模式),否则,kube-proxy将自行转发网络请求(User space代理模式)
2.3、容器引擎
容器引擎负责运行容器。Kubernetes支持多种容器引擎:Docker (opens new window)、containerd (opens new window)、cri-o (opens new window)、rktlet (opens new window)以及任何实现了 Kubernetes容器引擎接口 (opens new window)的容器引擎
三、Addons组件
addons主要是使用kubernetes的集群资源,实现kubernetes整个集群的一些功能特性,例如:dns,服务发现,负载均衡,UI等。
3.1、dns
Cluster DNS 是一个 DNS 服务器,是对您已有环境中其他 DNS 服务器的一个补充,存放了 Kubernetes Service 的 DNS 记录。 Kubernetes 启动容器时,自动将该 DNS 服务器加入到容器的 DNS 搜索列表中
3.2、WEB UI
Dashboard (opens new window)是一个Kubernetes集群的 Web 管理界面。用户可以通过该界面管理集群。
这篇文章先介绍到这里,主要是介绍了kubernetes集群的一些组件信息。让大家有一个统一的了解。
还没有评论,来说两句吧...