控制平面组件(Control Plane Components)

1. kube-apiserver

相当于一个通信部门(秘书部),其他的部门都需要经过API进行信息的传递。

  • 功能:作为Kubernetes的前端,提供REST API,处理所有的REST请求,对象的创建、更新、删除、查询等操作。
  • 作用:集群的统一入口,所有的组件通过它进行通信。

2. etcd

相当于一个数据库,它会将所有部门的操作信息记录到数据库当中。

  • 功能:分布式键值存储,用于保存Kubernetes的所有集群数据。
  • 作用:持久化存储集群的配置信息、状态信息等,是K8S的数据库。

3. kube-scheduler

相当于调度者,将不同的项目调度到不同的NODE节点上。

  • 功能:负责将Pod调度到集群的各个节点上。
  • 作用:根据预设的调度策略和当前集群的状态,选择最合适的节点来运行新的Pod。

4. kube-controller-manager

相当于公司里的老板,进行决策,决策完成之后,通知秘书部门进行传递信息。

  • 功能:运行各种控制器(如节点控制器、复制控制器、端点控制器、命名空间控制器等)。
  • 作用:监控Kubernetes对象状态,并确保实际状态符合期望状态(如维护副本数量,处理失效节点)。

5. cloud-controller-manager

相当于公司当中的外联部,决定是否要与其他公司合作

  • 功能:与云提供商交互的控制器。
  • 作用:管理云提供商特有的控制逻辑,如负载均衡器、存储卷等。

工作节点组件(Node Components)

1. kubelet

相当于工厂中的厂长,负责监控工厂的运作。

  • 功能:负责与控制平面交互,管理本地Pod和容器。
  • 作用:接收kube-apiserver的指令,管理容器的生命周期,监控容器状态。

2. kube-proxy

相当于工厂的门卫大爷,负责安保和引路。

  • 功能:实现Kubernetes的服务(Service)抽象,为每个节点提供网络代理服务。
  • 作用:管理网络规则,处理Pod间的网络通信和负载均衡。

3. Container Runtime

  • 功能:负责运行和管理容器的运行时环境。
  • 作用:执行容器的实际操作,如启动、停止容器。常见的容器运行时包括Docker、containerd、CRI-O等。

辅助组件

1. DNS(CoreDNS)

  • 功能:为Kubernetes集群中的服务提供DNS服务。
  • 作用:解析服务名和Pod名,使其能够通过DNS进行通信。

2. Dashboard

  • 功能:Kubernetes的Web用户界面。
  • 作用:提供一个直观的界面来管理和监控Kubernetes集群。

3. kubectl

  • 功能:命令行工具,用于与Kubernetes集群进行交互。
  • 作用:通过命令行执行各种Kubernetes操作,如创建、查看、删除资源等。

4. Metrics Server

  • 功能:收集和聚合集群级别的资源使用数据(如CPU、内存)。
  • 作用:为自动伸缩和监控提供必要的数据支持。
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐