了解有关 Kubernetes 架构的更多信息。
假设您对 Kubernetes 有基本的了解。如果您还没有阅读以下介绍和安装文章:
https://.com/kubernetes-introduction/
https://.com/install-kubernetes-on-ubuntu/
Kubernetes遵循主/从架构。 Kubernetes架构有主节点和工作节点。主节点有四个组件。
- Kube API 服务器
- 控制器
- 调度程序
- 等
此外,工作节点具有三个组件:
- 小杯
- 多维数据集代理
- 容器运行时
Kubernetes 架构如下所示:
了解有关主节点和工作节点组件的更多信息。

主节点
主节点管理 Kubernetes 集群,是所有管理任务的入口点。您可以通过 CLI、GUI 或 API 与主节点通信。集群中可能有多个主节点以提供容错能力。如果有多个master节点,则采用高可用模式,由一个leader执行所有操作。所有其他主节点都成为该领导者主节点的追随者。
Kubernetes 还使用 etcd 来管理集群状态。所有主节点都连接到分布式键/值存储 etcd。

让我们一一讨论所有这些组件。

API服务器
API 服务器在主节点上执行所有管理任务。用户将其余命令发送到 API 服务器,该服务器验证、处理并执行请求。 etcd 将集群的结果状态存储为分布式键/值存储。
调度程序
然后是调度程序。因此,顾名思义,调度程序将工作调度到不同的工作节点。包含每个工作节点的资源使用信息。调度程序还考虑服务质量要求、数据局部性和许多其他参数。然后,调度程序根据 Pod 和服务来安排工作。
控制经理
控制管理器管理控制 Kubernetes 集群状态的非终止控制循环。现在,每个控制循环都知道其管理的对象的所需状态,并通过 API 服务器检查其当前状态。
在控制环路中,如果期望状态不满足对象的当前状态,则控制环路执行校正步骤以使当前状态与期望状态相同。因此,控制器管理器确保当前状态与期望状态相同。
等
etcd 是一个分布式键值存储,用于保存集群状态。因此,这必须是 Kubernetes master 的一部分,或者也可以在外部配置。 etcd 使用 goLang 编写,基于Raft 共识算法。
Raft 允许一组机器作为一个连贯的群体发挥作用,即使某些成员失败也能生存。即使某些成员停止工作,该算法也始终可以工作。组中的一个节点成为主节点,其余节点成为跟随者。
Master只能有一位,其他所有的Master都必须服从这位Master。 etcd 不仅用于存储集群的状态,还用于存储配置详细信息,例如子网和配置映射。

工作节点
工作节点是运行应用程序并由主节点控制的虚拟或物理服务器。 Pod 调度在工作节点上,并具有运行和连接 Pod 所需的工具。 Pod 只是容器的集合。
此外,要从外部访问您的应用程序,您必须连接到工作节点而不是主节点。
让我们看一下工作节点的组件。
容器运行时
容器运行时主要用于在工作节点上运行和管理连续生命周期。容器运行时的一些示例包括容器 rkt、lxc 等。 Docker 通常被称为容器运行时,但更准确地说:docker 是一个使用容器的平台。作为容器运行时。
小杯
Kubelet 本质上是一个在每个工作节点上运行并与主节点通信的代理。因此,如果您有 10 个工作节点,则 kubelet 将在每个工作节点上运行。以多种方式接收 Pod 定义并运行与该端口关联的容器。它还确保属于 Pod 的容器始终保持健康。
kubelet 使用 gRPC 框架连接到容器运行时。 kubelet 连接到容器运行时接口 (CRI),对容器和镜像执行操作。镜像服务负责所有与镜像相关的操作,运行时服务负责所有与 Pod 和容器相关的操作。这两个服务执行两种不同的操作。
我会告诉你一些有趣的事情。此前,容器运行时是硬编码在 Kubernetes 中的,但随着 CRI 的发展,Kubernetes 现在可以使用不同的容器运行时而无需重新编译。因此,实现 CRI 的容器运行时可用于管理 Kubernetes 中的 Pod、容器和容器镜像。 Docker 垫片和 CRI 容器是 CRI 垫片的两个示例。 Docker shim 使用安装在工作节点上的 docker 创建容器,然后工作节点在内部使用它们来创建和管理容器。
多维数据集代理
Kube-proxy 在每个工作节点上作为网络代理运行。监听API服务器创建或删除各个服务点。对于每个服务点,kube-proxy 都会设置一条到达该服务点的路由。
结论
我希望这可以帮助您更好地理解 Kubernetes 架构。 Kubernetes 技能始终是按需提供的,如果您想学习如何发展自己的职业生涯,请查看此Udemy 课程。




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

