Openshift是一个开源的容器云平台,底层基于当前容器的事实标准编排系统Kubernetes和docker引擎,企业可以基于此平台搭建内部Paas平台,贯穿CI/CD流程,提高企业IT效率,拥抱DevOps和敏捷开发。

什么是Paas

PaaS(Platform as a Service,平台即服务)最早是在云计算领域被提出。如下图所示,将企业IT服务分为九层,传统自建数据中心九层设施都需要企业自己维护,成本极高。而云计算架构就相当于把九层架构中的底层一部分外包给云计算服务提供商,根据外包的层次不同,分为IaaS(Infrastructure as a Service,基础设施即服务),PaaS,SaaS(Software as a Service)三层。

  • IaaS 层为基础设施运维人员服务、提供计算、存储、网络以及其他硬件资源,云平台使用者可以在上面部署和运行包括操作系统和应用程序在内的任意软件,无需再为基础设施的管理而分心。

  • PaaS 层为应用开发人员服务,提供支撑应用运行所需的软件运行时环境,相关的工具与服务,如数据库服务、日志服务、监控服务等,让应用开发者可以专注于交付业务价值的代码而无需关心应用所需的基础环境与工具。

  • SaaS 层为一般用户(最终用户)服务,提供了一套完整可用的软件系统,让一般用户无需关心技术细节,只需通过浏览器、应用客户端的方式就能使用部署在云上的应用服务。SaaS 产品比如客户关系管理系统、邮件、虚拟桌面、通信、游戏等。

什么是Kubernetes

Kubernetes是一个开源容器编排引擎,用于自动化容器化应用程序的部署,扩展和管理。 Kubernetes的基本概念包括:

  • 一个或多个工作节点(worker node)负责工作负载
  • 一个或多个管理节点(master node)负责管理工作负载
  • 将容器封装在名为Pod的部署单元,使用Pod为容器提供额外的元数据并且提供在单个部署实体中对多个容器进行分组的功能
  • 创建特殊的资源。例如,服务表示一组Pod和访问策略,该访问策略允许容器没有特定的ip地址也能连接服务。复制控制器(Replication controllers)是另一种用于控制同一时间的Pod副本数量的特殊资源,可以使用此功能自动扩展应用程序以适应其当前需求。

什么是OKD

OKD是Kubernetes的发行版,针对持续应用程序开发和多租户部署进行了优化。OKD在Kubernetes之上添加了开发人员和运营工具,以便为小型和大型团队实现快速的应用程序开发,轻松部署和扩展以及长期生命周期维护。
OKD是嵌入了Red Hat OpenShift中的上游Kubernetes发行版,并通过安全性和其他集成概念进行扩展。 OKD在github和文档中也称为Origin。

openshift层次结构

OpenShift v3是一个分层系统,旨在尽可能准确地公开底层Docker格式的容器镜像和Kubernetes概念,重点是帮助开发人员轻松组合应用程序。例如,安装Ruby,推送代码和添加MySQL。
其中,docker提供了打包和创建基于linux的轻量容器镜像的抽象;Kubernetes提供了集群管理以及在多台主机上编排容器的功能。OKD提供了以下功能 :

  • 帮助开发人员管理、构建和部署源代码
  • 管理和推广大规模的流进系统的镜像
  • 大规模的应用管理
  • 组织大型开发人员组织的团队和用户跟踪
  • 支持群集的网络基础结构

Openshift 实际上由三部分组成,核心部分实现容器的调度是封装的 Kubernetes, 除此之外还有一个内置的镜像仓库(Image Registry),这个仓库是可选的,Openshift 也可以配置使用 Dockerhub 或者企业自己的镜像仓库,最外层部分是一个友好的 Web 界面,用于展示和操作 Openshift 的资源。
如下图所示,Openshift 要成为一个完整的数字化平台需要依赖于两个外部系统,一个代码库,一个是持续集成服务,事实上这两个外部服务也是可以跑在 Openshift 里面的。右边的灰色矩形就是 Openshift 的主要架构了,它的上层是一个路由(Router),用于 DNS 解析和转发,确保用户能够调用到 Openshift 集群中的服务。中间部分是跑在 RHEL 操作系统上的 Kubernetes 集群,侧面是外部存储服务,因为集群里的计算单元是漂浮的,所以通常 Kubernetes 集群只提供计算能力,数据持久外需要依赖外部的比如说 S3,EBS 等云服务商提供的存储服务。最下层同样也是由云服务商提供的基础设施服务。

Pods

okd引用了kubernetes的pods概念。pods是指在同一台主机上运行的一个或多个容器,它是定义、开发和部署的最小单位。 每个pod都分配有自己的内部IP地址,因此拥有其整个端口空间,pod中的容器可以共享其本地存储和网络。
pod的生命周期可以在容器退出时结束,也可以在容器退出后保留pods以方便访问容器日志。
pod在运行过程中无法被修改,当需要修改时,需要先停止pod再根据修改后的配置文件和镜像重新创建pod。pod退出时不会保留状态,因此一般通过更高级的控制器管理pods而不是用户直接管理。

参考资料

https://www.duyidong.com/2017/06/14/kubernetes-and-openshift/

官网链接:
https://www.openshift.com/
https://access.redhat.com/documentation/en-us/openshift_container_platform/4.1/html/architecture/architecture
https://docs.okd.io/latest/architecture/index.html

什么是openshift的更多相关文章

  1. 调戏OpenShift:一个免费能干的云平台

    一.前因后果 以前为了搞微信的公众号,在新浪sae那里申请了一个服务器,一开始还挺好的 ,有免费的云豆送,但是一直运行应用也要消费云豆,搞得云豆也所剩无几了.作为一名屌丝,日常吃土,就单纯想玩一玩微信 ...

  2. redhat openshift 跳转

    网址: https://openshift.redhat.com/ OpenShift免费套餐的限制是:最多15PV/s,有3个512MB内存的应用,月流量在50K以下. 可以绑米,可惜的是,需要代理 ...

  3. 利用OpenShift托管Node.js Web服务进行微信公众号开发

    最近写了一个微信的翻译机器人.用户只要关注该公众号,发送英文的消息,就能收到中文翻译的回复.有兴趣的读者可以扫描下面的二维码关注该公众号,尝试发送英文单词试试看.(有时候第一次发送单词会收到“该公众号 ...

  4. 使用虚拟信用卡认证openshift铜牌计划

    "铜牌计划(bronze)"是OpenShift推出的一项免费计划,这个计划能为你提供更多的免费便利,主要就是可以自己绑域名加SSL证书和应用即使24小时没人访问也不关机了.说这个 ...

  5. 解决由OpenShift自带的APC加速器造成的代码无法及时生效的问题

    如果你在使用你的Openshift时出现了这样的问题,那就说明APC加速器导致了此故障 1.上传后的代码运行效果没有变化 2.Wordpress翻来覆去自己重复升级一个版本(←Wordpress在自嗨 ...

  6. 上一周,小白的我试着搭建了两个个人博客:在github和openshift上

    上一周,突发奇想,想搭建个自己的博客. 由于是突发奇想,自然想先找免费的试试手.仔细搜索下,选定了目标Openshift和Github. Openshift 安装WordPress OpenShift ...

  7. OpenShift:外国的免费云平台

    二.安装openshift客户端 对于怎么安装openshift客户端,我就不说了,网上有很多教程,连官网也有他自己的教程. 官网教程:https://developers.openshift.com ...

  8. OpenShift

    一步一脚印 停停走走,回头看看 博客园 首页 新随笔 联系 订阅 管理 随笔 - 24  文章 - 8  评论 - 2 调戏OpenShift:一个免费能干的云平台   一.前因后果 以前为了搞微信的 ...

  9. 使用Navicat远程管理OpenShift的数据库

    其实 phpMyAdmin 这个 web 端的 MySQL 数据库管理工具还是很好的,要不然也不会成为 MySQL 数据库的绝配.但是我想,很多人应该和重华一样,不太喜欢使用 web 端的工具,总觉得 ...

  10. 绑定GoDaddy域名到OpenShift应用

    一.申请GoDaddy域名 二.托管OpenShift应用 三.绑定www.mydomain.com 四.重定向mydomin.com到www.mydomain.com 五.It's go time ...

随机推荐

  1. BZOJ 4103: [Thu Summer Camp 2015]异或运算 可持久化trie

    开始想了一个二分+可持久化trie验证,比正解多一个 log 仔细思考,你发现你可以直接按位枚举,然后在可持久化 trie 上二分就好了. code: #include <bits/stdc++ ...

  2. proxysql 学习一 proxysql docker 运行试用

    proxysql 是一个比较强大的mysql proxy 服务,支持动态mysql 实例调整,查询重写,查询cache,监控,数据镜像,读写分离 以及ha,最近已经发布了2.0 ,很值得试用下 环境准 ...

  3. 使用singer 转换gitbase 数据到postgresql

    gitbase 是mysql server 的一个实现(主要是用来分析git仓库代码),但是里面好多功能可能并不是很强大(sql 的限制) 我们可以通过singer 的tap-mysql 将数据抽取到 ...

  4. uni-app 模拟器

    1.安装MuMu模拟器 Android模拟器端口: 7555 2.安装夜神模拟器 Android模拟器端口: 62001

  5. conda中重要的三个概念:环境、通道和包

    基本使用conda必须要了解的三个概念:虚拟环境.通道和包. conda提供了在python环境下重要的编程环境管理功能,包括环境隔离和依赖包管理. 环境隔离通过虚拟环境实现,与此相关的命令有: co ...

  6. EduSoho之插件开发(脚手架搭建)

    本文主要参考官方文档,地址为:http://developer.edusoho.com/plugin/start.html 插件开发的目的,一方面为了更好的扩展,另外一方面为了更好的维护. 关于这方面 ...

  7. 第07组 Beta冲刺(3/5)

    队名:摇光 队长:杨明哲 组长博客:求戳 作业博客:求再戳 队长:杨明哲 过去两天完成了哪些任务 文字/口头描述:代码编辑器,目前没什么进展 展示GitHub当日代码/文档签入记录:(组内共用,已询问 ...

  8. Spring MVC JSON乱码问题

    之前项目中也遇到过返回JSON时乱码问题,当时找到了一个方法解决了问题但是没有明白原因,今天这个项目又遇到了JSON乱码问题,用之前的方法不行,看了这篇博文才明白为什么 @RequestMapping ...

  9. 关于资源获取(请把https改为http)

    所有demo以及资源获取,请把https改为http.

  10. AnonymousPipeStream的使用案例

    AnonymousPipeStream的使用具体案例如下: 服务端: using System; using System.Data; using System.Data.SQLite; using ...