- 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的企业应用云平台》做出来的例子。