OpenShift - 架构

OpenShift 是一个分层系统,其中每一层都使用 Kubernetes 和 Docker 集群与其他层紧密绑定。OpenShift 的架构设计使其能够支持和管理 Docker 容器,这些容器使用 Kubernetes 托管在所有层之上。与早期版本的 OpenShift V2 不同,新版本的 OpenShift V3 支持容器化基础设施。在此模型中,Docker 有助于创建基于 Linux 的轻量级容器,而 Kubernetes 支持在多个主机上编排和管理容器的任务。

OpenShift 容器平台架构

OpenShift 的组件

OpenShift 架构的关键组件之一是在 Kubernetes 中管理容器化基础设施。Kubernetes 负责基础设施的部署和管理。在任何 Kubernetes 集群中,我们都可以拥有多个主节点和多个节点,从而确保设置中没有故障点。

OpenShift 架构的关键组件

Kubernetes 主机组件

Etcd − 它存储配置信息,集群中的每个节点都可以使用这些信息。它是一个高可用性键值存储,可以分布在多个节点之间。它应该只能由 Kubernetes API 服务器访问,因为它可能包含敏感信息。它是一个分布式键值存储,所有人都可以访问。

API 服务器 − Kubernetes 是一个 API 服务器,它使用 API 提供集群上的所有操作。API 服务器实现了一个接口,这意味着不同的工具和库可以随时与其通信。kubeconfig 是一个包,其中包含可用于通信的服务器端工具。它公开 Kubernetes API"。

控制器管理器 − 此组件负责大多数收集器,这些收集器调节集群的状态并执行任务。它可以被视为一个在非终止循环中运行的守护进程,负责收集信息并将其发送到 API 服务器。它致力于获取集群的共享状态,然后进行更改以使服务器的当前状态达到所需状态。关键控制器是复制控制器、端点控制器、命名空间控制器和服务帐户控制器。控制器管理器运行不同类型的控制器来处理节点、端点等。

调度程序 − 它是 Kubernetes master 的关键组件。它是 master 中的一项服务,负责分配工作负载。它负责跟踪集群节点上的工作负载利用率,然后将工作负载放在可用资源上并接受工作负载。换句话说,这是负责将 pod 分配给可用节点的机制。调度程序负责工作负载利用率并将 pod 分配给新节点。

Kubernetes 节点组件

以下是节点服务器的关键组件,这些组件是与 Kubernetes 主服务器通信所必需的。

Docker − 每个节点的第一个要求是 Docker,它有助于在相对隔离但轻量级的操作环境中运行封装的应用程序容器。

Kubelet 服务 − 这是每个节点中的一个小服务,负责向控制平面服务传递信息和从控制平面服务传递信息。它与 etcd 存储交互以读取配置详细信息和 Wright 值。它与主组件通信以接收命令和工作。然后,kubelet 进程负责维护工作状态和节点服务器。它管理网络规则、端口转发等。

Kubernetes 代理服务 −这是一个代理服务,在每个节点上运行,有助于使服务可供外部主机使用。它有助于将请求转发到正确的容器。Kubernetes 代理服务能够执行原始负载平衡。它确保网络环境是可预测和可访问的,但同时也是隔离的。它管理节点上的 pod、卷、机密、创建新容器健康检查等。

集成的 OpenShift 容器注册表

OpenShift 容器注册表是 Red Hat 的内置存储单元,用于存储 Docker 镜像。借助最新的集成版 OpenShift,它提供了一个用户界面来查看 OpenShift 内部存储中的镜像。这些注册表能够保存带有指定标签的镜像,这些标签随后可用于构建容器。

常用术语

镜像 − Kubernetes (Docker) 镜像是容器化基础设施的关键构建块。截至目前,Kubernetes 仅支持 Docker 镜像。pod 中的每个容器都在其中运行其 Docker 镜像。配置 pod 时,配置文件中的 image 属性具有与 Docker 命令相同的语法。

项目 −它们可以定义为早期版本的 OpenShift V2 中存在的域的重命名版本。

容器 − 它们是在将映像部署到 Kubernetes 集群节点后创建的容器。

节点 − 节点是 Kubernetes 集群中的工作机器,也称为 master 的 minion。它们是工作单元,可以是物理、VM 或云实例。

Pod − Pod 是 Kubernetes 集群节点内的容器及其存储的集合。可以创建一个包含多个容器的 Pod。例如,将数据库容器和 Web 服务器容器保留在 Pod 内。