本文概述
- 主节点
- 工作节点
我假设你对Kubernetes有基本的了解。如果不是, 请查看以下介绍和安装文章。
Kubernetes初学者简介
如何在Ubuntu 18上安装Kubernetes?Kubernetes遵循主从架构。 Kubernetes体系结构具有一个主节点和一个工作节点。主节点有四个组件。
- 这是一个API服务器
- 控制者
- 调度器
- 等
- kubelet
- kube-proxy
- container runtime
文章图片
让我详细介绍一下主节点和工作节点的组件。
主节点 主节点管理Kubernetes集群, 它是所有管理任务的入口点。你可以通过CLI, GUI或API与主节点通信。为了实现容错能力, 群集中可以有多个主节点。当我们有多个主节点时, 将具有高可用性模式, 并且由一个领导者执行所有操作。所有其他主节点将是该领导者主节点的跟随者。
另外, 为了管理群集状态, Kubernetes使用etcd。所有主节点都连接到etcd, 后者是一个分布式键值存储。
文章图片
让我一一解释所有这些组成部分。
服务器API
API Server在主节点上执行所有管理任务。用户将其余命令发送到API服务器, 然后由API服务器验证请求, 然后处理并执行它们。 etcd将集群的结果状态保存为分布式键值存储。
排程器
在那之后, 我们有了一个调度程序。顾名思义, 调度程序将工作调度到不同的工作程序节点。它具有每个工作程序节点的资源使用情况信息。调度程序还考虑服务质量要求, 数据局部性以及许多其他此类参数。然后, 调度程序根据Pod和服务来调度工作。
财务经理
调节Kubernetes集群状态的不间断控制环由控制管理中心管理。现在, 这些控制循环中的每个循环都知道其管理的对象的所需状态, 然后它们通过API服务器查看其当前状态。
在控制回路中, 如果所需状态不符合对象的当前状态, 则控制回路将采取纠正步骤以使当前状态与所需状态相同。因此, 控制器管理器确保你的当前状态与所需状态相同。
等
etcd是一个分布式键值存储, 用于存储集群状态。因此, 它要么是Kubernetes主服务器的一部分, 要么也可以在外部进行配置。 etcd是基于goft语言编写的, 基于Raft共识算法。
【了解Kubernetes架构】木筏使收集的机器可以作为一个连贯的小组工作, 可以承受一些成员的失败。即使某些成员无法工作, 该算法仍可以在任何给定时间工作。组中的节点之一将是主节点, 其余节点将是跟随者。
只能有一个大师, 所有其他大师都必须跟随该大师。除了存储群集状态外, etcd还用于存储配置详细信息, 例如子网和配置映射。
工作节点 工作节点是运行应用程序并由主节点控制的虚拟或物理服务器。这些Pod已安排在工作节点上, 这些工作节点具有运行和连接它们所需的工具。豆荚不过是容器的集合。
要从外部环境访问应用程序, 你必须连接到工作程序节点而不是主节点。
文章图片
让我们探索工作者节点组件。
容器运行时
容器运行时基本上用于在工作程序节点上运行和管理连续的生命周期。我可以为你提供的一些容器运行时示例包括容器rkt, lxc等。通常会观察到docker也被称为容器运行时, 但确切地说, 让我告诉你docker是一个使用容器的平台作为容器运行时。
生孩子
Kubelet基本上是一个在每个工作程序节点上运行并与主节点进行通信的代理。因此, 如果你有十个工作程序节点, 那么kubelet将在每个工作程序节点上运行。它通过各种方式接收容器定义, 并运行与该端口关联的容器。它还可以确保作为豆荚一部分的容器始终健康。
kubelet使用gRPC框架连接到容器运行时。 kubelet连接到容器运行时接口(CRI)以执行容器和映像操作。图像服务负责所有与图像相关的操作, 而运行时服务负责与所有与pod和容器相关的操作。这两个服务有两个不同的操作要执行。
让我告诉你一些有趣的事情, 容器运行时曾经在Kubernetes中进行过硬编码, 但是随着CRI的发展, Kubernetes现在可以使用不同的容器运行时而无需重新编译。因此, Kubernetes可以使用任何实现CRI的容器运行时来管理Pod, 容器和容器映像。 Docker填充程序和CRI容器是CRI填充程序的两个示例。使用docker shim, 容器是使用安装在工作程序节点上的docker创建的, 然后docker在内部使用容器创建和管理容器
KUBE-代理
Kube-proxy作为网络代理在每个工作节点上运行。它侦听API服务器以创建或删除每个服务点。对于每个服务点, kube-proxy都会设置路由, 以便可以到达它。
总结
我希望这可以帮助你更好地理解Kubernetes架构。 Kubernetes技能总是有需求的, 如果你想学习建立职业, 请查看此Udemy课程。
推荐阅读
- 10个被称为Sysadmin的Linux工具
- 将Windows和MAC计算机备份到云的12种最佳服务
- Kubernetes仪表板
- 使用Application Insights监控应用程序性能
- Spring IoC容器-ApplicationContext
- Mapper 文件中SQL不等于的写法
- 在非NDK编译条件下使用Android Log函数
- 安卓记账本开发——图表的使用
- uniapp简易直播