OpenShift - 架构



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

OpenShift Container Platform Architecture

OpenShift 组件

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

Key Components of OpenShift Architecture

Kubernetes 主节点组件

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

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

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

调度器 − 它是 Kubernetes 主节点的关键组件。它是主节点中的一个服务,负责分发工作负载。它负责跟踪集群节点上工作负载的利用率,然后将工作负载放置在有可用资源并接受工作负载的节点上。换句话说,这是分配 Pod 到可用节点的机制。调度器负责工作负载利用率并将 Pod 分配到新节点。

Kubernetes 工作节点组件

以下是工作节点服务器的关键组件,这些组件对于与 Kubernetes 主节点通信是必要的。

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

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

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

集成的 OpenShift 容器注册表

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

常用术语

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

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

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

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

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

广告