一文带你了解K8S组件架构
相当于一个通信部门(秘书部),其他的部门都需要经过API进行信息的传递。相当于一个数据库,它会将所有部门的操作信息记录到数据库当中。相当于调度者,将不同的项目调度到不同的NODE节点上。相当于公司里的老板,进行决策,决策完成之后,通知秘书部门进行传递信息。相当于公司当中的外联部,决定是否要与其他公司合作相当于工厂中的厂长,负责监控工厂的运作。相当于工厂的门卫大爷,负责安保和引路。
·
控制平面组件(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、内存)。
- 作用:为自动伸缩和监控提供必要的数据支持。
更多推荐
已为社区贡献2条内容
所有评论(0)