《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一第3章 OpenShift架构探秘3.1 架构概览

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

本节书摘来自华章出版社《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一书中的第3章,第3.1节,作者 陈耿 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

第3章 OpenShift架构探秘

在上一章中,我们通过模板部署了一个前端PHP应用及一个后端MySQL数据库。对用户而言,部署的过程十分简单,通过几次鼠标单击即可完成应用的部署。但在用户便利的幕后,其实OpenShift平台为用户完成了大量操作。在这一章,我们将会深入了解应用部署背后的故事,深入了解OpenShift容器云的架构。

3.1 架构概览

从技术堆栈的角度分析,作为一个容器云,OpenShift自底而上包含了以下几个层次:基础架构层、容器引擎层、容器编排层、PaaS服务层、界面及工具层,如图3-1所示。

image

3.1.1 基础架构层

基础架构层为OpenShift平台的运行提供了基础的运行环境。OpenShift支持运行在物理机、虚拟机、基础架构云(如OpenStack、Amazon Web Service、Microsoft Azure等)或混合云上。在操作系统层面,OpenShift支持多种不同的Linux操作系统,如企业级的Red Hat Enterprise Linux、社区的CentOS。值得一提的是,2015年Red Hat针对容器平台启动了Atomic Project,并推出了专门针对容器化运行环境的操作系统Atomic Host。从技术上来看,Atomic Host也是一个Linux操作系统,是基于Red Hat的企业版Linux的基础上优化和定制而来。通过根分区只读、双根分区、RPM OSTree等特性,Atomic Host可以为容器应用的运行提供一个高度一致的环境,保证在大规模容器集群环境中容器应用的稳定与安全。
在谈到容器时,大家经常会提及容器的一个优点,那就是可以保证应用的一致性。同样的容器镜像,在开发、测试和生产环境中运行的结果应该是一致的。但是容器的一致性和可移植性是有前提条件的,那就是底层操作系统的内核及相关的配置要一致。容器为应用提供了一个隔离的运行环境,这个隔离的实现依赖于底层Linux内核的系统调用。如果大量服务器的Linux内核及操作系统的配置不能保证一致,那么容器运行的最终结果的一致性也不可能有保障。
要了解更多关于Atomic容器操作系统的信息可以访问Atomic Project项目主页:http://www.atomic-project.org

3.1.2 容器引擎层

OpenShift目前以Docker作为平台的容器引擎。Docker是当前主流的容器引擎,已经在社区及许多企业的环境中进行了检验。事实证明Docker有能力为应用提供安全、稳定及高性能的运行环境。OpenShift运行的所有容器应用最终落到最底层的实现,其实就是一个个Docker容器实例。OpenShift对Docker整合是开放式的。OpenShift并没有修改Docker的任何代码,完全基于原生的Docker。熟悉Docker的用户对OpenShift能快速上手。同时,Docker现有的庞大的镜像资源都可以无缝地接入OpenShift平台。

3.1.3 容器编排层

目前大家对容器编排的讨论已经成为容器相关话题中的一个热点。Kubernetes是Google在内部多年容器使用经验基础上的一次总结。Kubernetes设计的目的是满足在大规模集群环境下对容器的调度和部署的需求。Kubernetes是OpenShift的重要组件,OpenShift平台上的许多对象和概念都是衍生自Kubernetes,如Pod、Namespace、Replication Controller等。与对Docker的集成一样,OpenShift并没有尝试从代码上定制Kubernetes,OpenShift对Kubernetes
的整合是叠加式的,在OpenShift集群上仍然可以通过Kubernetes的原生命令来操作Kubernetes的原生对象。

3.1.4 PaaS服务层

Docker和Kubernetes为OpenShift提供了一个良好的基础,但是只有容器引擎和容器编排工具并不能大幅度提高生产效率,形成真正的生产力。正如Kubernetes在其主页上自我介绍所描述的那样,Kubernetes关注的核心是容器应用的编排和部署,它并不是一个完整的PaaS解决方案。容器平台最终的目的是向上层应用服务提供支持,加速应用开发、部署和运维的速度和效率。OpenShift在PaaS服务层默认提供了丰富的开发语言、开发框架、数据库及中间件的支持。用户可以在OpenShift这个平台上快速部署和获取一个数据库、分布式缓存或者业务规则引擎的服务。除了Docker Hub上的社区镜像外,OpenShift还有一个重要的服务提供方:Red Hat。Red Hat旗下的JBoss中间件系列几乎全线的产品都已经容器化。JBoss中间件包含了开发框架、开发工具、应用服务器、消息中间件、SOA套件、业务流程平台(BPM)、单点登录、应用监控、应用性能管理(APM)、分布式缓存及数据虚拟化等产品。这些中间件可以直接通过OpenShift容器云对用户提供服务。通过OpenShift,可以快速搭建一个Database as a Service,即DBaaS,一个BPMaaS,或者Redis-aaS等。

3.1.5 界面及工具层

云平台一个很重要的特点是强调用户的自助服务,从而降低运维成本,提高服务效率。界面和工具是容器云平台上的最后一公里接入,好的界面和工具集合能帮助用户更高效地完成相关的任务。OpenShift提供了自动化流程Source to Image,即S2I,帮助用户容器化用各种编程语言开发的应用源代码。用户可以直接使用S2I或者把现有的流程与S2I整合,从而实现开发流程的持续集成和持续交付。提升开发、测试和部署的自动化程度,最终提高开发、测试及部署的效率,缩短上市时间。OpenShift提供了多种用户的接入渠道:Web控制台、命令行、IDE集成及RESTful编程接口。这些都是一个完善的企业级平台必不可少的组件。
针对容器应用的运维及集群的运维,OpenShift提供了性能度量采集、日志聚合模块及运维管理套件,帮助运维用户完成日常的应用及集群运维任务。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB与微服务架构的融合:灵活扩展与高效管理
【5月更文挑战第23天】阿里云PolarDB是适用于微服务的高性能分布式数据库,提供数据分片、水平扩展及高可用性解决方案。通过SQL或API实现弹性扩展,内置故障转移保障服务连续性,且兼容MySQL协议,易于集成微服务生态。通过Spring Boot示例展示了PolarDB的配置与集成过程,强调其在现代云原生应用中的重要角色。
175 1
|
7月前
|
监控 安全 Cloud Native
云原生开源沙龙北京站开启报名 | 微服务安全零信任架构
「微服务安全零信任架构」主题技术沙龙将于4月13日在北京阿里中心举行,欢迎报名!~
云原生开源沙龙北京站开启报名 | 微服务安全零信任架构
|
7月前
|
调度
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构(二)
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构
165 0
|
7月前
|
Java 开发者 微服务
Java企业应用软件系统架构演变史
Java企业应用软件系统架构演变史
97 0
|
1月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
1月前
|
编解码 人工智能 开发者
长短大小样样精通!原始分辨率、超长视频输入:更灵活的全开源多模态架构Oryx
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据。其核心创新在于能够对图像和视频进行任意分辨率编码,并通过动态压缩器模块提高处理效率。Oryx 在处理长视觉上下文(如视频)时表现出色,同时在图像、视频和3D多模态理解方面也展现了强大能力。该模型的开源性质为多模态研究社区提供了宝贵资源,但同时也面临一些挑战,如选择合适的分辨率和压缩率以及计算资源的需求。
32 3
|
2月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
223 6
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
7月前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】深入PolarDB内核:探究存储计算分离架构的设计哲学
【5月更文挑战第20天】PolarDB是阿里巴巴的云原生分布式数据库,以其存储计算分离架构为核心,解决了传统数据库的扩展性和资源灵活性问题。该架构将数据存储和计算处理分开,实现高性能(通过RDMA加速数据传输)、高可用性(多副本冗余保证数据可靠性)和灵活扩展(计算资源独立扩展)。通过动态添加计算节点以应对业务流量变化,PolarDB展示了其在云时代应对复杂业务场景的能力。随着开源项目的进展,PolarDB将持续推动数据库技术发展。
229 6
|
2月前
|
机器学习/深度学习 大数据 PyTorch
行为检测(一):openpose、LSTM、TSN、C3D等架构实现或者开源代码总结
这篇文章总结了包括openpose、LSTM、TSN和C3D在内的几种行为检测架构的实现方法和开源代码资源。
66 0
|
3月前
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。

相关产品

  • 容器服务Kubernetes版