《k8s in action》 - 了解结构
介绍k8s 集群由两个部分组成:管理节点工作节点每个组成部分根据自身功能的需要,会有使用到不同的组件,下面我将对管理节点、工作节点所涉及的组件以及各组件的主要作用进行一下说明。管理节点:etcd布式存储数据库,作为 k8s 的中央数据库,保存了整个集群的状态。API 服务器资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制。调度器负责资源的调度,按...
·
介绍
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 组件发起连接。
未待完续…
更多推荐
已为社区贡献13条内容
所有评论(0)