Kubernetes – 架构
Kubernetes – 架构
在本章中,我们将讨论 Kubernetes 的基本架构。
Kubernetes – 集群架构
如下图所示,Kubernetes 遵循客户端-服务器架构。其中,我们在一台机器上安装了master,在不同的Linux机器上安装了node。
master 和 node 的关键组件在下一节中定义。
Kubernetes – 主机组件
以下是 Kubernetes Master Machine 的组件。
等
它存储集群中每个节点都可以使用的配置信息。它是一个高可用的键值存储,可以分布在多个节点之间。它只能由 Kubernetes API 服务器访问,因为它可能包含一些敏感信息。它是一个所有人都可以访问的分布式键值存储。
接口服务器
Kubernetes 是一个 API 服务器,它使用 API 提供集群上的所有操作。API 服务器实现了一个接口,这意味着不同的工具和库可以很容易地与之通信。Kubeconfig是一个包以及可用于通信的服务器端工具。它公开了 Kubernetes API。
控制器管理器
该组件负责调节集群状态和执行任务的大部分收集器。一般来说,它可以被认为是一个运行在非终止循环中的守护进程,负责收集信息并将其发送到 API 服务器。它致力于获取集群的共享状态,然后进行更改以使服务器的当前状态达到所需状态。关键控制器是复制控制器、端点控制器、命名空间控制器和服务帐户控制器。控制器管理器运行不同类型的控制器来处理节点、端点等。
调度器
这是 Kubernetes master 的关键组件之一。它是 master 中的一项服务,负责分配工作负载。它负责跟踪集群节点上工作负载的利用率,然后将可用资源放置在工作负载上并接受工作负载。换句话说,这是负责将 pod 分配给可用节点的机制。调度器负责工作负载利用率并将 pod 分配给新节点。
Kubernetes – 节点组件
以下是与 Kubernetes master 通信所必需的 Node 服务器的关键组件。
码头工人
每个节点的第一个需求是 Docker,它有助于在相对隔离但轻量级的操作环境中运行封装的应用程序容器。
Kubelet 服务
这是每个节点中的一个小服务,负责将信息中继到控制平面服务和从控制平面服务中继信息。它与etcd存储交互以读取配置详细信息和 wright 值。这与主组件通信以接收命令和工作。然后kubelet进程负责维护工作状态和节点服务器。它管理网络规则、端口转发等。
Kubernetes 代理服务
这是在每个节点上运行的代理服务,有助于使服务可用于外部主机。它有助于将请求转发到正确的容器,并能够执行原始负载平衡。它确保网络环境是可预测和可访问的,同时它也是隔离的。它管理节点上的 pod、卷、秘密、创建新容器的健康检查等。
Kubernetes – 主节点结构
下图显示了 Kubernetes Master 和 Node.js 的结构。