第 2 章 OpenShift Dedicated 架构
2.1. OpenShift Dedicated 简介
OpenShift Dedicated 是用于开发和运行容器化应用程序的平台。它旨在允许支持的应用程序和数据中心从少量机器和应用程序扩展到为数百万客户端服务的数千台机器。
OpenShift Dedicated 基于 Kubernetes 的基础,整合了作为大规模电信、流视频、游戏、银行和其他应用程序的引擎相同的技术。借助红帽开放技术中的实现,您可以将容器化应用程序从单一云扩展到内部和多云环境。
2.1.1. 关于 Kubernetes
尽管容器镜像和从中运行的容器是现代应用程序开发的主要构建块,但要大规模运行它们,则需要可靠且灵活的分发系统。Kubernetes 是编配容器的事实标准。
Kubernetes 是一个开源容器编配引擎,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes 的一般概念比较简单:
- 从一个或多个 worker 节点开始,以运行容器工作负载。
- 从一个或多个 control plane 节点管理这些工作负载的部署。
- 将容器嵌套到名为 pod 的部署单元中。使用 pod 可以为容器提供额外的元数据,并可在单个部署实体中对多个容器进行分组。
- 创建特殊种类的资产。例如,服务由一组 pod 及定义了访问方式的策略来表示。此策略可使容器连接到所需的服务,即便容器没有用于服务的特定 IP 地址。复制控制器(replication controller)是另一种特殊资产,用于指示一次需要运行多少个 pod 副本。您可以使用此功能来自动扩展应用程序,以适应其当前的需求。
短短数年,Kubernetes 已在大量的云和本地环境中被采用。借助开源开发模型,拥护和可以通过为组件(如网络、存储和身份验证)实施不同的技术来扩展 Kubernetes 的功能。
2.1.2. 容器化应用程序的好处
与使用传统部署方法相比,使用容器化应用程序具有许多优势。过去应用程序要安装到包含所有依赖项的操作系统上,容器能让一个应用程序随身携带自己的依赖项。创建容器化应用程序有很多好处。
2.1.2.1. 操作系统的好处
容器使用不含内核的小型专用 Linux 操作系统。它们的文件系统、网络、cgroups、进程表和命名空间与主机 Linux 系统分开,但容器可以在必要时与主机无缝集成。容器以 Linux 为基础,因此可以利用快速创新的开源开发模型带来的所有优势。
因为每个容器都使用专用的操作系统,所以您能够在同一主机上部署需要冲突软件依赖项的不同应用程序。每个容器都带有各自的依赖软件,并且管理自己的接口,如网络和文件系统,因此应用程序无需争用这些资产。
2.1.2.2. 部署和扩展优势
如果您在应用程序的主要版本之间进行滚动升级,则可以持续改进应用程序,既不会造成停机,又能仍然保持与当前版本的兼容性。
您还可以与现有版本一起部署和测试应用程序的新版本。容器通过测试后,只要部署更多新容器并删除旧容器便可。
由于应用程序的所有软件依赖项都在容器本身内解决,因此数据中心的每台主机上都能使用标准的操作系统。您无需逐一为应用主机配置特定的操作系统。当数据中心需要更多容量时,您可以部署另一个通用主机系统。
同样,扩展容器化应用程序也很简单。OpenShift Dedicated 提供了一个扩展任何容器化服务的简单、标准的方法。例如,如果将应用程序构建为一组微服务,而非大型的单体式应用程序,您可以分别扩展各个微服务来满足需求。有了这一能力,您可以只扩展需要的服务,而不是整个应用程序,从而在使用最少资源的前提下满足应用程序需求。
2.1.3. OpenShift Dedicated 概述
OpenShift Dedicated 为 Kubernetes 带来企业级增强,具体包括以下所列:
- 集成了红帽技术。OpenShift Dedicated 中的主要组件源自 Red Hat Enterprise Linux (RHEL) 和相关的红帽技术。OpenShift Dedicated 得益于红帽企业级优质软件的严格测试和认证计划。
- 开源开发模型。开发以开放方式完成,源代码可从公共软件存储库中获得。这种开放协作促进了快速创新和开发。
虽然 Kubernetes 擅长管理应用程序,但它并未指定或管理平台级要求或部署过程。强大而灵活的平台管理工具和流程是 OpenShift Dedicated 4 具备的重要优势。以下小节描述了 OpenShift Dedicated 的一些唯一功能和优点。
2.1.3.1. 定制操作系统
OpenShift Dedicated 使用 Red Hat Enterprise Linux CoreOS (RHCOS) 作为所有 control plane 和 worker 节点的操作系统。
RHCOS 包括:
- Ignition,OpenShift Dedicated 将其用作首次启动系统配置来进行机器的初次上线和配置。
- CRI-O,Kubernetes 的原生容器运行时实现,可与操作系统紧密集成来提供高效和优化的 Kubernetes 体验。CRI-O,提供用于运行、停止和重启容器的工具。它完全替换了 OpenShift Dedicated 3 中使用的 Docker Container Engine。
- Kubelet,Kubernetes 的主要节点代理,负责启动和监视容器。
2.1.3.2. 简化的更新过程
在 OpenShift Dedicated 中,更新或升级是一个简单、高度自动化的过程。由于 OpenShift Dedicated 从中央 control plane 完全控制每台机器上运行的系统和服务,包括操作系统本身,所以升级是一个自动事件。
2.1.3.3. 其他主要功能
Operator 既是 OpenShift Dedicated 4 代码库的基本单元,又是部署供应用程序使用的应用程序和软件组件的便捷方式。在 OpenShift Dedicated 中,Operator 可充当平台的基础,不再需要手动升级操作系统和 control plane 应用程序。OpenShift Dedicated(如 Cluster Version Operator 和 Machine Config Operator)允许对这些关键组件进行简化的集群范围内管理。
Operator Lifecycle Manager (OLM) 和 OperatorHub 提供了相应的工具,可用于存储 Operator 并将其分发给开发和部署应用程序的人员。
Red Hat Quay Container Registry 是一个 Quay.io 容器 registry,为 OpenShift Dedicated 集群提供大多数容器镜像和 Operator。Quay.io 是 Red Hat Quay 的一个公共 registry 版本,可存储数百万镜像和标签。
OpenShift Dedicated 中的其他 Kubernetes 增强功能包括软件定义网络 (SDN)、身份验证、日志聚合、监视和路由方面的改进。OpenShift Dedicated 还提供功能齐全的 web 控制台和自定义 OpenShift CLI (oc
) 界面。