开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

IBM Developer 博客

通过 IBM Developer 关注最新动态并获取信息

从 Red Hat OpenShift 的架构和组件开始,介绍 Red Hat OpenShift 的基础知识和概念。


Red Hat OpenShift 是一个在 Red Hat Enterprise Linux CoreOS (RHCOS) 上运行且在 Kubernetes 上构建的开源容器应用程序平台。它负责管理集成的缩放、监控、日志记录和计量功能。通过 OpenShift,不仅可以执行可在 Kubernetes 上执行的所有操作,还可以使用 OpenShift 特有的功能来执行更多操作。

OpenShift 提供了混合云所需的一切功能,例如,容器运行时、网络、监控、容器注册表、身份验证和授权。我将介绍 OpenShift 如何通过引入架构和组件来完成所有这些操作。

OpenShift 的架构和组件

为了充分利用 OpenShift,您需要了解其架构。OpenShift 由以下层和组件组成,其中每个组件都有自己的职责:

  • 基础架构层
  • 服务层
  • 主节点
  • 工作节点
  • 注册表
  • 持久存储器
  • 路由层

alt

基础架构层

在基础架构层中,可以在物理服务器、虚拟服务器甚至在云(私有云/公共云)上托管应用程序。

服务层

服务层负责定义 pod 和访问策略。服务层负责为 pod 提供永久的 IP 地址和主机名,将应用程序连接在一起,可实现简单的内部负载均衡,以及在应用程序组件之间分配任务。

主节点

主节点负责管理集群并照管工作节点。它负责以下四个主要任务:

  • API 和身份验证:任何管理请求都会经过 API;将对这些请求进行 SSL 加密和身份验证,以确保集群的安全性。
  • 数据存储:存储与环境和应用程序相关的状态和信息。
  • 调度程序:在考虑当前内存、CPU 和其他环境利用率时,需要确定 pod 的放置位置。
  • 运行状况/缩放:监控 pod 的运行状况,并根据 CPU 利用率对其进行缩放。如果某个 pod 发生故障,那么主节点会自动重新启动该 pod。如果它经常发生故障,那么会将其标记为故障 pod,并且暂时不会将其重新启动。

alt

工作节点

OpenShift 集群中主要有两种类型的节点:主节点和工作节点。应用程序驻留在工作节点中。集群中可以有多个工作节点;工作节点是您进行所有编码工作的地方,它们可以是虚拟节点或物理节点。

如上图所示,工作节点由 pod 组成。pod 是可以定义、部署和管理的最小单元,它可以包含一个或多个容器。这些容器包含应用程序及其依赖项。例如,Alex 将其电子商务平台的代码保存在每个数据库、前端、用户系统、搜索引擎等的容器中。

须牢记,容器都是临时的,因此将数据保存在容器中可能会丢失数据。为防止这种情况,可以使用持久存储器来保存数据库。

同一个 pod 中的所有容器共享相同的 IP 地址和相同的卷。在同一个 pod 中还可以包含一个 sidecar 容器,该容器可以是服务网格或用于安全性分析,它必须在同一个 pod 中进行定义,并与其他容器共享相同的资源。应用程序可以水平缩放,并通过服务连接在一起。

alt

注册表

注册表将图像本地保存在集群中。在将新图像推送到注册表时,将会通知 OpenShift 并传递图像信息。

持久存储器

持久存储器是用于保存所有数据并将其连接到容器的地方。使用持久存储器很重要,因为容器都是临时的,这意味着当重新启动或删除容器时,已保存的所有数据都会丢失。因此,持久存储器可防止数据丢失,并允许使用有状态的应用程序。

路由层

最后一个组件是路由层。它提供了在外部从任何设备访问集群中应用程序的权限。它还可以对不正常的 pod 进行负载均衡和自动路由。

Operator

OpenShift 4 的一个主要改进是它基于 Operator 构建而成,这让它变得如此与众不同。如果您不熟悉 OpenShift,您可能会想知道 Operator 是什么以及它们为何很重要。 通常,管理和维护少量的容器化应用程序并不难,但管理和维护大量的容器化应用程序就非常困难了,而且这些应用程序也容易受到攻击。Operator 是一种用于打包、运行和维护 Kubernetes 本机应用程序的方法。它扩展了 Kubernetes 控制平面和 API,可以自动完成和简化基于容器的服务的安装、更新和管理过程。整个 OpenShift 平台都是在 Operator 上运行的,这意味着您可以轻松安装或升级 OpenShift。您还可以安装、管理和更新集群上运行的 Operator。

您可以从 OperatorHub 中安装 Operator,也可以使用 Operator SDK 来自定义自己的 Operator,以便可以构建、测试和打包 Operator。OpenShift 4 中引入了 OperatorHub。它是可由管理员安装且可由开发者添加到单个项目的应用程序的目录。通过使用 OperatorHub,您可以快速部署与 IBM Cloud 和 Red Hat 的集成。OperatorHub 中提供了两种类型的可用 Operator:社区 Operator 和已认证的 Operator。

alt

如果想要了解有关在 OpenShift 上动手操作 Operator 的更多信息,可试用玩转 OperatorHub 教程。

在本系列的下一篇博客文章中,我将介绍 Web 控制台上的开发者和管理员角色。

本文翻译自:OpenShift 101: Introduction, architecture, and operators(2020-08-19)