深入剖析Kubernetes【三】Kubernetes集群的本质
如上图所示是Kubernetes集群的架构图,主要有下列概念

etcd

etcd是一款分布式协调系统,可以用于分布式数据的持久化。在Kubernetes系统中,etcd负责整个kubernetes集群的数据持久化存储,etcd通过集群模式部署实现高可用

Master节点

Master节点由三个紧密协作的独立组件组合而成,它们分别是负责 API 服务的 kube-apiserver、负责调度的 kube-scheduler,以及负责容器编排的 kube-controller-manager。其中kube-apiserver是一个核心模块,
apiserver: apiserver通过与etcd交互实现数据的持久化,对外提供基础的API接口。scheduler、controller-manager以及其他kubernetes的扩展组件都是与apiserver交互实现更多的功能。

scheduler: scheduler收集和分析当前Kubernetes集群中所有Node节点的资源(内存、CPU)负载情况,然后依此分发新建的Pod到Kubernetes集群中可用的节点。实时监测Kubernetes集群中未分发和已分发的所有运行的Pod。

controller-manager: controller-manager包含各种控制器,目前有两类endpoint-controller和replication-controller。endpoint-controller定期关联service和Pod(关联信息由endpoint对象维护),保证service到Pod的映射总是最新的。replication-controller定期关联replicationController和Pod,保证replicationController定义的复制数量与实际运行Pod的数量总是一致的。

Woker节点

Worker作为计算节点,负责部署运行具体的业务容器镜像。Worker节点中也有几个比较重要的概念:
kubelet : kubelet 主要同容器运行时(比如 Docker 项目)打交道,负责Node节点上pod的创建、修改、监控、删除等全生命周期的管理。而这个交互所依赖的,是一个称作CRI(Container Runtime Interface)的远程调用接口,这个接口定义了容器运行时的各项核心操作,比如:启动一个容器需要的所有参数。同时kubelet会定时上报本Node的状态信息给API Server。

**kube-proxy: ** 实现集群网络服务负载均衡。Proxy运行在每个Node上,Proxy提供TCP/UDP sockets的proxy,每当创建一个Service,Proxy主要从etcd获取Services和Endpoints的配置信息),然后根据配置信息在Node上启动一个Proxy的进程并监听相应的服务端口,当外部请求发生时,Proxy会根据Load Balancer将请求分发到后端正确的容器处理。

最后再引用一张非常好的描述Kubernetes能力的脑图:
深入剖析Kubernetes【三】Kubernetes集群的本质

相关文章:

  • 2021-09-02
  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
  • 2021-04-01
  • 2022-12-23
  • 2021-05-25
猜你喜欢
  • 2021-12-23
  • 2021-08-17
  • 2021-05-17
  • 2021-08-25
  • 2021-08-05
  • 2021-07-28
  • 2021-12-15
相关资源
相似解决方案