• ​​OpenShift的简介​​
  • ​​OpenShift术语​​
  • ​​OpenShift结构图​​
  • ​​OpenShift创建大致流程​​
  • ​​OpenShift创建简单的容器应用​​

OpenShift的简介

  • OpenShift Origin是OpenShift,Red Hat的容器应用平台的开源上游项目,是基于Docker容器封装和Kubernetes容器集群管理的核心,Origin还通过应用程序生命周期管理功能和DevOps工具进行扩充。Origin提供了一个完整的开源容器应用平台。
  • OpenShift旨在为开发人员提供一件事:易于使用而无需担心。OpenShift的使命是通过照顾应用程序开发的所有凌乱的IT方面,让您更轻松地工作,并让您专注于工作:编写应用程序并满足客户需求。
  • 使用PaaS平台,您无需再像以前一样关注网络、操作系统、Web服务器、应用服务器,它们对于你来说是透明的,除了性能以外,你甚至可以忽略他们的存在。你只需要选择合适的语言、服务和中间件,并根据需求开发、升级、更新应用即可。
  • OpenShift是RedHat推出的PaaS平台,开源、开放,而且提供一定限额的免费资源供开发者使用。支持Java、Python、PHP、Perl和Ruby等多种语言,资源动态调度和分配。高可用,开发者无需为运维、系统管理烦恼,只需专注于应用本身即可.
  • OpenShift不仅集成了maven, Jenkins等各种常用的开发工具给开发者,还集成了wordpress,wrupat等常用的应用,以便非编程人员也能‘一键创建’属于他们的应用。除了OpenShift平台提供的语言、服务外,如果需要,也可以轻松将常用的功能‘打包’成服务,方便使用。甚至也可以使用源代码,在AWS或者物理/虚拟机上部署属于自己的PaaS平台。
  • Openshift origin官网地址:​​https://www.openshift.org/​
  • Openshift 官网地址:​​http://www.openshift.com/​

OpenShift术语

  • Broker – 大脑,管理着整个平台,选择合适的Node结点处理请求
  • Node – 主要由众多的Gear组成
  • Plugin Auth,DNS 等
  • Gear – 资源容器,约束着CPU、内存、存储等软硬件资源;并负责运行应用
  • Cartridge – 技术推栈,如语言、框架、服务,或者常用被打包的常用功能
  • Application – Cartridge的载休,以及应用代码本身
  • Scaled/Scalable Application – 多个gear协同构成的应用
  • Client Tools – CLI, Eclipse, Web Console等创建或管理应用的工具

OpenShift结构图

OpenShift可由一个Broker结点,一个或多个Node结点构成. 
主要分为五层:

  • 界面及工具层
  • Paas服务层
  • 容器编排层
  • 容器引擎层
  • 基础架构层
  • 开发者可以使用rhc、 Web控制台等工具向Broker结点发送REST请求,也可以直接通过SSH登录到应用所在gear(相当于一个小型的虚拟机),直接对应用进行操作。
  • Broker结点主要由broker和controller两个子项目构成,其中broker主要完成配置任务,而逻辑则实现于controller,controller子项目是整个OpenShift项目的核心之一(另一核心是node子项目,存储着平台数据/状态,以及通过接口实现授权、DNS等功能。此外,还有broker-util子项目提供命令,方便我们管理Broker结点。
  • 消息组件‘实现’用的是gem ‘mcollection-client’.
  • Node结点主要就是存放用户应用以及管理它们。每个gear就是一个由软硬件资源构成的容器,放置着用户应用代码和所使用的cartridge实例。同一个gear内的cartridge像在本地一样,是可以直接通信的;而不同gear之间则可以通过端口转发实现,相同原理,部分cartridge我们可以像在本地一样操作它们。
  • node核心部分可以进一步拆分为以下几点:
  • gear, 也称之为application container;
  • 用户的应用代码, git repo; cartridge, 还可折分,下文讲解;
  • 前端Web服务, 和Apache相关; 前端代理服务, 和HAProxy相关;
  • node, 狭义上‘结点’, 比gear大一级的容器, 只不过它里面存放着的是gear, 还有就是它可以配置硬件配额;
  • unix user, 传统的linux账号, 方便资源的限制与隔离而创建的, 创建gear时会一同创建。
  • 此外,同Broker结点一样,Node结点也有node-util子项目提供命令,方便我们管理Node结点或者位于Node之下的众多gear, cartridge。
  • 最终用户访问应用时,根据携带的参数,通过Apache转发可直接到达指定gear处理,快捷高效,而且安全性得到提高。

OpenShift创建大致流程

  • 创建一个应用程序在OpenShift中(用命令行或通过他们的IDE)
  • 编译应用程序(在Vi,TextMate,Eclipse,Visual Studio或任何软件中)
  • 将应用程序代码放入OpenShift(再次使用命令行或通过他们的IDE)

OpenShift创建简单的容器应用

创建一个PHP和mysql的容器应用,如下图是成功创建好的界面。 


这个例子是按照这本书《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》做出来的例子。