当前位置: 首页 > news >正文

解读OpenShift的逻辑架构和技术架构

e68b56c7332f1d288b910338ee265dfe.gif

导读:OpenShift的架构设计主要是针对企业需求进行高可用架构设计,包括计算、网络、存储等。接下来我们针对这些问题逐一展开介绍。

作者:魏新宇 郭跃军

来源:大数据DT(ID:hzdashuju)

01 OpenShift的逻辑架构

OpenShift的逻辑架构图如图2-6所示。

ca38d2698dd0e0a1798b960d7bd3bd15.png

▲图2-6 OpenShift逻辑架构

图2-6中的关键组件介绍如下。

  • 底层基础设施:OpenShift可以运行在公有云(AWS、Azure、Google等)、私有云(OpenStack)、虚拟机(vSphere、RHV、红帽KVM)、X86、IBM Power/Z服务器上。

  • 控制平面(Control Plane):负责整个集群的调度和管理,如认证授权、容器调度、应用管理、服务注册发现等。控制节点需要运行在CoreOS系统上。

  • 计算节点(Worker):提供在OpenShift上运行容器应用所需的计算资源,如Tomcat、MongoDB等。可以选择根据运行的容器类型将节点进一步细分为Infra节点和App节点,Infra节点上运行集群的附加组件(如路由器、日志、监控等),App节点上运行真实的业务应用容器。计算节点可以运行在CoreOS或RHEL上。

  • Kubernetes层:OpenShift会集成次新版本的Kubernetes,通过Kubernetes实现核心功能。

  • 应用生命周期管理层:OpenShift通过Jenkins或Teckton实现应用的CI/CD。

  • Service Catalog层:提供多种预安装的应用服务,如Redis、OpenJDK等,实现基础服务的快速创建和管理,实现自服务。

  • 容器层:OpenShift上可以运行多种编程语言运行时、数据库和其他软件包的认证容器镜像。

02 OpenShift的技术架构

了解OpenShift的逻辑架构之后,接下来讲解在OpenShift中使用了哪些关键性技术。OpenShift的技术架构如图2-7所示。

ddcd4b168f55235145bbe21fa0d34a43.png

▲图2-7 OpenShift的技术架构

按照层级,我们自下往上进行介绍。

  • OpenShift的基础操作系统是Red Hat CoreOS。Red Hat CoreOS是一个精简的RHEL发行版,专用于容器执行的操作系统。

  • CRI-O是Kubernetes CRI(容器运行时接口)的实现,以支持使用OCI(Open Container Initiative)兼容的运行时。CRI-O可以使用满足CRI的任何容器运行时,如runC、libpod或rkt。

  • Kubernetes是容器调度编排和管理平台,关于它的具体功能我们不再赘述。

  • Etcd是一个分布式键值存储,Kubernetes使用它来存储有关Kubernetes集群元数据和其他资源的配置及状态信息。

  • 自定义资源定义(CRD)是Kubernetes提供的用于扩展资源类型的接口,自定义对象同样存储在Etcd中并由Kubernete管理。

  • 容器化服务(Containerized Service)实现了PaaS功能组件以容器方式在OpenShift上运行。

  • 应用程序运行时和xPaaS(Runtime and xPaaS)是可供开发人员使用的基本容器镜像,每个镜像都预先配置了特定的运行时语言或数据库。xPaaS产品是红帽中间件产品(如JBoss EAP和ActiveMQ)的一组基础镜像。OpenShift应用程序运行时(RHOAR)是在OpenShift中运行云原生应用的程序运行时,包含Red Hat JBoss EAP、OpenJDK、Thorntail、Eclipse Vert.x、Spring Boot和Node.js。

  • DevOps工具和用户体验:OpenShift提供用于管理用户应用程序和OpenShift服务的Web UI和CLI管理工具。OpenShift Web UI和CLI工具是使用REST API构建的,可以与IDE和CI平台等外部工具集成使用。

我们已经从技术架构图中了解到技术组件的概貌,限于篇幅,OpenShift中一些关键技术的细节的深入介绍,可阅读《OpenShift在企业中的实践》一书第2.2.2节。

关于作者:魏新宇,红帽副首席解决方案架构师。在IaaS、PaaS方面有丰富的经验,致力于开源解决方案在企业中的推广和应用。从售前角度主导了红帽在金融、汽车行业的多个PaaS项目。曾就职于华为、IBM、VMware。

郭跃军,目前就职于VMware,担任Solutions Engineer。曾于红帽担任PaaS咨询顾问、AWS顾问服务团队担任云架构咨询顾问,熟悉私有云和公有云生态。从2015年接触容器技术开始,一直奋战在PaaS建设一线,参与了很多OpenShift项目的竞标、PoC、咨询和落地实施,帮助很多企业实现了数字化转型。

本文摘编自《OpenShift在企业中的实践:PaaS DevOps 微服务》(第2版),经出版方授权发布。

6aab51fc944808b756cb19162cfa03e9.png

延伸阅读《OpenShift在企业中的实践》

推荐语:本书以红帽OpenShift v4为核心编写,从客户的数字化转型入手,介绍如何通过OpenShift构建PaaS平台、实现DevOps、云原生、微服务。

85f6c7f0645b98eee499b31433904ae3.gif

刷刷视频👇

c2875f79014f2f8602cb7a195c2253b7.gif

更多精彩回顾

书讯 | 4月书讯(下)| 上新了,华章

书讯 | 4月书讯(上)| 上新了,华章

资讯 | 一图看懂边缘计算整体架构

书单 | 金三银四求职季,十道腾讯算法真题解析!

干货 | Koa在实际的业务场景中,路由如何做分割?

收藏 | 一图梳理企业数据治理的8项举措

上新 | Webpack实战:入门、进阶与调优(第2版)

书评 | 数据分析即未来

赠书 | 【第98期】终于有人把Flink设计理念与基本架构讲明白了

c1376c6889b6c1bd76583b1afd5d9f2f.gif

相关文章:

  • 视频时代的大数据:问题、挑战与解决方案
  • NLP大牛菲利普•科恩机器翻译权威著作
  • TypeScript 中的“类型”到底是个啥?
  • Koa开发:Node服务中非常重要的概念——进程管理
  • 从loser到产品大牛,你经历的我都经历了
  • 读书会 | 为什么《数据中台:让数据用起来》,值得每个数据人读?
  • 重新思考企业架构
  • 概率为何反直觉?
  • 手把手教你用Pandas 合并两行为一行并调整行顺序
  • C++20 用微软的提案进入协程时代!
  • 构建系统软件三步走,这些书你不可错过!
  • 数字经济下半场中,金融企业应该如何进行数字化经营呢?
  • ClickHouse为啥在字节跳动能这么火?
  • 计算机如何大规模协作?
  • 终于有人把元数据讲明白了
  • 深入了解以太坊
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 4个实用的微服务测试策略
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Java小白进阶笔记(3)-初级面向对象
  • Linux中的硬链接与软链接
  • mac修复ab及siege安装
  • maya建模与骨骼动画快速实现人工鱼
  • Mithril.js 入门介绍
  • PAT A1120
  • React 快速上手 - 07 前端路由 react-router
  • SQLServer之创建显式事务
  • 阿里云Kubernetes容器服务上体验Knative
  • 从0到1:PostCSS 插件开发最佳实践
  • 大快搜索数据爬虫技术实例安装教学篇
  • 基于HAProxy的高性能缓存服务器nuster
  • 悄悄地说一个bug
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #HarmonyOS:基础语法
  • #前后端分离# 头条发布系统
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (学习日记)2024.01.19
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)mysql使用Navicat 导出和导入数据库
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET BackgroundWorker
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth