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