跳到主要内容

第2章 k8s系统架构和组件

1.k8s架构

从系统架构来看,k8s分为2个节点
Master 控制节点 指挥官
Node 工作节点 干活的

1724736037854-b756df3c-1748-4ed2-a56b-f4a4a4c7b8e8.png

1724736157397-4efdc372-7771-4f74-a680-ef6421ca8054.png

2.Master节点组件

1724736037740-f8454325-e0a9-4f62-8962-9205baa9ad7a.webp

kube-API Server

kube-API Server:提供k8s API接口 主要处理Rest操作以及更新Etcd中的对象 是所有资源增删改查的唯一入口。

Scheduler

Scheduler:资源调度器 根据etcd里的节点资源状态决定将Pod绑定到哪个Node上

Controller Manager

Controller Manager 负责保障pod的健康存在 资源对象的自动化控制中心,Kubernetes集群有很多控制器。

Etcd

这个是Kubernetes集群的数据库 所有持久化的状态信息存储在Etcd中

kubectl

kubectl是管理k8s集群的客户端工具,管理员通过kubectl命令对API Server进行操作 API Server 响应并返回对应的命令结果,从而达到对 Kubernetes 集群的管理

3.Node节点的组成

1724736037779-c8e5e7f0-8003-45ef-ab35-fb81a61095ea.webp

容器运行时(Container Runtime)

容器运行时是负责容器运行的软件。 默认情况下,Kubernetes 使用 容器运行时接口(Container Runtime Interface,CRI) 来与你所选择的容器运行时交互。

如果同时检测到 Docker 和 containerd,则优先选择 Docker。 这是必然的,因为 Docker 18.09 附带了 containerd 并且两者都是可以检测到的, 即使你仅安装了 Docker。 如果检测到其他两个或多个运行时,kubeadm 输出错误信息并退出。

kubelet 通过内置的 dockershim CRI 实现与 Docker 集成。

Docker Engine

负责节点容器的管理工作,最终创建出来的是一个Docker容器。

kubelet

安装在Node上的代理服务,用来管理Pods以及容器/镜像/Volume等,实现对集群对节点的管理。

kube-proxy

安装在Node上的网络代理服务,提供网络代理以及负载均衡,实现与Service通讯。

更新: 2024-08-27 16:18:04