Kubernetes组件

架构图1

Kubernetes节点hostname kubernetes节点控制器_Pod

 

 架构图2

Kubernetes节点hostname kubernetes节点控制器_Pod_02

  

Master组件 

提供集群的控制,对组件进行全局决策,并检测影响集群事件;Master组件可以在集群的任何节点运行,为了简单起见,通常会在一台机器上启用所有组件,并且不会在这个机器上运行用户容器;

  • Kube-apiserver 主节点上负责提供Kubernetes API 服务的组件,他是Kubernetes的控制面前端。
  • Etcd 高可用的键值数据库,用于保存整个集群的后台数据。
  • Kube-scheduler 负责监视哪些新创建未指定节点的Pod,并选择节点让Pod在上面运行。
  • Kube-Controller-Manager 运行控制器的组件,包含4个具体的控制器。
  • 节点控制器(Node Controller):负责在节点出现故障时候进行通知和响应。
  • 副本控制器(Replication Controller):负责为系统中每个副本控制器对对象维护正确的Pod。
  • 端点控制器(Endpoints Controller):填充端点(Endpoints)对象,即加入(Services与Pod)。
  • 服务账户和令牌控制器(Services Account & Token Controller):为新的命名空间创建默认账户和API访问令牌。
  • Could-Controller-Manager 运行与基础云提供商交互的控制器
  • 节点控制器(Node Controller) 用于检查云提供商以确定节点是否在云中停止响应后被删除。
  • 路由控制器(Route Controller) 用于在底层云基础架构中设置路由。
  • 服务控制器(Service Controller)用于创建、删除、更新云提供商负载均衡器。
  • 数据卷控制器(Volume Cotroller)用于创建、装载和附加卷,并和云服务商进行交互以卷编排。

Node组件

节点组件在每个节点上运行,维护运行的Pod并提供Kubernetes环境。

  • kubelet 在一个集群的每个节点运行代理,它保证容器都运行在Pod中,接收各类机制提供给他的PodSpecs,确保这些PodSpecs中描述的容器处于运行状态且健康。
  • Kube-proxy 集群中每个节点运行的网络代理,负责维护节点的网络规则,允许集群的外部和内部网络访问与Pod网络进行通信。
  • Container Runtime 负责运行容器,支持Docker、containerd、cri-o、rktlet等 

Addons插件

  • DNS 为集群提供DNS服务。
  • 用户界面(Dashboard)基于web的UI,提供浏览数据的界面。
  • 容器资源监控
  • 集群层面日志