介绍

k8s 集群由两个部分组成:

  • 管理节点
  • 工作节点

每个组成部分根据自身功能的需要,会有使用到不同的组件,下面我将对管理节点、工作节点所涉及的组件以及各组件的主要作用进行一下说明。

管理节点:
  • etcd
    布式存储数据库,作为 k8s 的中央数据库,保存了整个集群的状态。
  • API 服务器
    资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制。
  • 调度器
    负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上(Node)。
  • 控制管理器
    负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。
工作节点:
  • Kubelet
    负责维护容器的生命周期,同时也负责 Volume(CVI)和网络(CNI)的管理。
  • Kubelet 服务代理(kube-proxy)
    负责为 Service 提供 cluster 内部的服务发现和负载均衡。
  • 容器运行时(Container Runtime)
    负责镜像管理以及 Pod 和容器的真正运行(CRI),例如:Docker、rkt 等等。

组件间如何通信

首先让我们先来看一张图
在这里插入图片描述
由上图我们可以总结以下几点:

  • k8s 组件间只能通过 API 服务器进行通信,组件与组件不会直接进行通信。
  • etcd 组件只能和API 服务器进行通信,其他组件要想访问 etcd 修改集群状态,必须通过 API 服务器。
  • API 服务器与其他组件的连接基本都是由其他组件发起的,但是也有例外,例如:使用 kubectl 获取日志、使用 kubectl attach 连接到一个运行中的容器,此时API 服务器会向工作节点上的 Kubelet 组件发起连接。

未待完续…

Logo

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

更多推荐