Kubernetes集群架构与组件

Kubernetes集群架构图:

简化版架构图:

  • kube-apiserver:集群的统一入口,各组件协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听都交给aipserver处理后在提交给etcd存储。

  • kube-controller-manager:作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。

  • kube-scheduler:负责k8s集群中pod的调度的 , scheduler通过与apiserver交互监听到创建Pod副本的信息后,它会检索所有符合该Pod要求的工作节点列表,开始执行Pod调度逻辑。调度成功后将Pod绑定到目标节点上,相当于“调度室”。

  • etcd:分布式键值存储系统,用于保存集群状态数据,比如:Pod、Service等对象信息。

  • kubectl:管理k8s的命令行工具,可以操作k8s中的资源对象,如增删改查等

  • Cordns:CoreDNS 其实就是一个 DNS 服务,而 DNS 作为一种常见的服务发现手段,很多开源项目以及工程师都会使用 CoreDNS 为集群提供服务发现的功能,Kubernetes 就在集群中使用 CoreDNS 解决服务发现的问题。

  • Calico: 是一套开源的网络和网络安全方案,用于容器、虚拟机、宿主机之前的网络连接,可以用在kubernetes、OpenShift、DockerEE、OpenStrack等PaaS或IaaS平台上。

  • kubelet:kubelet是Master'在Node上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、获取容器和节点状态等工作,kubelet将每个Pod转换成一组容器。

  • kube-proxy:在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。

  • Docker:容器运行时,负责启动容器的,在k8s1.20版本之后建议废弃docker,使用container作为容器运行

posted @ 2022-10-19 22:05  乱七八糟博客备份  阅读(34)  评论(0编辑  收藏  举报