一、OpenShift概念

OpenShift是红帽的云开发平台即服务(PaaS)。自由和开放源码的云计算平台使开发人员能够创建、测试和运行他们的应用程序,并且可以把它们部署到云中。Openshift广泛支持多种编程语言和框架,如Java,Ruby和PHP等。另外它还提供了多种集成开发工具如Eclipse integration,JBoss Developer Studio和 Jenkins等。OpenShift 基于一个开源生态系统为移动应用,数据库服务等,提供支持。

OpenShift Online服务构建在Red Hat Enterprise Linux上。Red Hat Enterprise Linux提供集成应用程序,运行库和一个配置可伸缩的多用户单实例的操作系统,以满足企业级应用的各种需求。

二、容器

我们一般说的“容器”,都是“Linux容器”。

Linux容器是与系统其他部分隔离开的一系列进程。运行这些进程所需的所有文件都由另一个镜像提供,这意味着从开发到测试再到生产的整个过程中,Linux 容器都具有可移植性和一致性。因而,相对于依赖重复传统测试环境的开发渠道,容器的运行速度要快得多。容器比较普遍也易于使用,因此也成了 IT安全方面的重要组成部分

容器的本质,一句话解释,就是一组受到资源限制,彼此间相互隔离的进程而隔离所用到的技术都是由linux内核本身提供的(所以说目前绝大部分的容器都是必须要跑在linux里面的)。其中namespace用来做访问隔离(每个容器进程都有自己独立的进程空间,看不到其他进程),cgroups用来做资源限制(cpu、内存、存储、网络的使用限制)。

Namespace让每个进程组有独立的PID, IPC和网络空间.Namespace通过 clone系统调用来实现的。

cgroups 是将进程分组管理的内核功能.通过cgroups可以隔离进程, 同时还可以控制进程的资源占用(CPU, 内存等等)情况在操作系统底层限制物理资源,起到 Container 的作用。进程可用的cpu资源由cpuset指定。

总的来说容器就是一种基于操作系统能力的隔离技术,这和基于hypervisor的虚拟化技术(能完整模拟出虚拟硬件和客户机操作系统)不同的。和传统虚拟化相比,容器启动很快,由于共享系统资源,一台主机可以运行上千个容器,并且容器镜像用类似git分发思想,用户更容易创建,分发,更新存储这些镜像。

三、OpenShift和容器的关联

openshift:基于DockerK8s构建的容器云。

Openshift底层以Docker作为容器引擎驱动,以K8s作为容器编排引擎组件,并提供了开发语言,中间件,DevOps自动化流程工具和web console用户界面等元素,提供了一套完整的基于容器的应用云平台。构建内部应用市场,提供中间件、数据库自动化的流程,可以快速进行应用的构建、容器化和部署贯通从应用开发到测试、上线的流程。开发、测试、运维可以在一个平台上协作提高研发效率。

四、OpenShift架构

节点(Nodes)RHEL/Atomic实例,应用(Apps)将运行在节点上

应用服务运行在每个节点的docker容器中

一个或多个docker容器可以运行在Pods中作为一个整体单元

Registries负责保存应用的images

Master为用户和客户端提供authenticated API

Master使用etcd提供服务发现

Master通过scheduler决定pod应该部署到哪个nodes

Services允许相关的pods彼此进行连接和通讯

Pods可以为有状态的服务映射共享存储

Pods映射共享存储后,持久化的数据就保存到了存储中

Routing layer路由外部的应用请求到pods

开发人员和运维人员可以通过web, CLI或者IDE访问OpenShift

五、使用Openshift需了解的概念

Project

在Openshift中,project对象用于分组和隔离相关的工作空间。我们可以将每一个独立的应用放到一个project中。

Openshift管理员可以以project为单位进行权限授权,资源配额等。

Deployments

Deployment对象提供了对普通应用程序的精细管理。

每一个服务,都会有一个Deployment对象,Deployment对象配置了服务部署,运行的信息。如果运行服务的容器实例出现异常,Deployment对象会自动根据配置信息自行修复。

Pods

Pods是openshift继承于kubernate的概念。pod是在一台主机上一起部署的一个或多个容器,也是可以定义,部署和管理的最小计算单元。

Pod可以理解为docker容器+容器相关的配置(网络,存储,运行镜像,环境变量等等)。

Pod由Deployment拉起来,其配置内容继承于Deployment对象。

Services

Services也是Openshift继承于kubernate的概念。Services相当于是一个内部的负载均衡对象。它标识一组集群Pods,以便代理它接收到的连接。

部署于Openshift的应用,默认是使用集群化部署的。集群部署的应用,对外会提供一个统一的服务地址,通过这个服务地址,可以由负载功能将服务请求调度到具体的服务实例中。

通常情况下,每个Deployment使用一个Services,部分特殊部署的应用除外。

Routers

Router对象用于将openshift外部的访问请求引入到openshfit平台内部的应用。

Router对象是基于HaProxy实现的。

对于一个系统,可能会由很多部署单元(微服务)构成。这些部署单元,有些需要对Openshift平台的外部请求提供服务,而有些只在openshift平台内部被调用。对于需要对Openshift平台的外部请求提供服务的service,我们需要暴露一个外部访问地址。这个地址就是由router对象创建并提供服务的。

我们可以为一个Service的不同端口创建不同的Router,也可以为一个Service的同一个端口创建不同的Router

Builds

Builds是OpenShift 中将输入参数转换为结果对象的过程。 大多数情况下,构建用于将源代码转换为可运行的容器镜像。

Buildconfig描述了应该创建新builds时的单个构建定义和一组触发器。 Builds对象由BuildConfig定义。

通俗来说,Builds是openshfit支持Devops而设计的一个对象。这个对象在CI过程中使用,用于定义自动构建容器镜像的动作。

Pipeline

Pipeline就是自动化流水线。流水线就是将实现Devops的相关工具按照顺序串联起来工作的一个工具对象。常见的实现DevOps的工具包括(但不限于):代码管理工具;编译构建工具;代码分析工具;制品管理工具;自动化测试工具;自动部署工具,自动监控工具等。

Pipeline也是openshfit支持Devops而设计的一个对象。

实际上,pipeline对象是与jenkin的流水线对应的。在openshift与jenkin集成之后,我们可以在openshift的pipeline对象中定能够以jenkin的pipeline。

Images

OpenShift 中的容器基于Docker格式的容器镜像。 images是一个包含运行单个容器的所有要求的二进制文件,以及描述其需求和功能的元数据。

如果我们要使用一个已获得的容器镜像部署应用,我们需要先将这个容器镜像包导入到openshift的project中。导入后,就会在openshift的images功能里面看到这个容器镜像。随后我们就可以直接使用这个镜像在openshift中快速部署应用。

六、OpenShift 部署基本操作命令

# 从仓库下载镜像

docker pull <image>  # 从docker registry server 中下拉image

#发布镜像到仓库

docker push <image>  # 将image 上传到 docker registry server 中

# 查看镜像

docker images: # 列出images

docker rmi  <image ID>: # 删除镜像

#打包镜像为文件

docker save –o xxxx.tar    镜像名

#解压镜像

docker load –i xxx.tar

#标记镜像

docker tag 原名  新名

七、发布微服务命令

①:获得容器镜像包:

在线容器镜像包的获得方式是docker pull <image>  # 从docker registry server 中下拉image

②:解压:

docker load -i redis4-base-centos.tar

③:打tag

docker tag ocp-registry.szlanyou.local:5000/mp221/redis4-base-centos:v2 registry.dev.paas.dfl.com.cn:5000/dangqunxxgl-gh/redis4-base-centos:v2

:推送到容器镜像仓库:

docker push registry.dev.paas.dfl.com.cn:5000/dangqunxxgl-gh/redis4-base-centos:v2

:上载到openshift平台(请先使用oc login 命令登录openshift平台且已经切换到project中。):

oc login

oc project dangqunxxgl-gh

oc import-image redis4-base-centos --from=registry.dev.paas.dfl.com.cn:5000/dangqunxxgl-gh/redis4-base-centos:v2 --confirm  -n dangqunxxgl-gh --insecure

说明:

redis4-base-centos是上载到openshift后openshift显示的镜像名;

dangqunxxgl-gh是上载的project名

OpenShift介绍及应用相关推荐

  1. openshift介绍及centos7安装单节点openshift、Redhat安装openshift集群完全教程

    Centos7中openshift_3.11单节点安装及配置开机自启详解 本次openshift安装使用最简单便捷的单节点安装,适用于本地开发及测试 openshift简介 OpenShift是红帽公 ...

  2. 【云原生】企业级容器管理平台Openshift介绍

    文章目录 一.什么是Openshift? 二.Openshift核心功能 2.1.核心功能 2.2.OCP和OKD介绍 三.Openshift的架构 四.Openshift和kubernetes的关系 ...

  3. openshift介绍与应用

    OpenShift是红帽公司的一个开源容器应用平台,以docker作为容器引擎,以k8s模型编排.调度容器.在两者的基础上,红帽公司提供了一套更加完善的容器应用管理平台.可以部署在物理机,虚拟机,公有 ...

  4. Openshift介绍及常用命令

    OpenShift是红帽公司的一个开源容器应用平台,以docker作为容器引擎,以k8s模型编排.调度容器.在两者的基础上,红帽公司提供了一套更加完善的容器应用管理平台.可以部署在物理机,虚拟机,公有 ...

  5. openshift 页面-图形化基础介绍

    openshift介绍: 文章来自百度百科: OpenShift是红帽的云开发平台即服务(PaaS).自由和开放源码的云计算平台使开发人员能够创建.测试和运行他们的应用程序,并且可以把它们部署到云中. ...

  6. Linux centos openshift安装教程整理

    安装openshift 1.下载地址:https://github.com/openshift/origin/releases 3.11下载:https://github.com/openshift/ ...

  7. openshift for linux

    安装openshift 1.下载地址:  https://github.com/openshift/origin/releases 3.11下载:  https://github.com/opensh ...

  8. 一键部署dns服务_OpenShift : 通往云原生、DevOps、微服务和Serverless的大门

    新书速递 查尔斯·狄更斯的<双城记>中有句耳熟能详的名言:"这是一个最好的时代,也是一个最坏的时代."作为技术从业者,在这个数字化浪潮和技术变革接连发生的时代,我对这句 ...

  9. OpenShift-介绍

    OpenShift介绍   OpenShift是红帽Red Hat公司基于开源的云平台,是平台即服务(PaaS),是一种容器应用平台.允许开发人员构建.测试和部署云应用.该系统是在k8s核心之上添加工 ...

最新文章

  1. Chapter 4.SQL编程
  2. 【机器学习入门笔记3:OpenCV模块组织结构】20190203
  3. oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序
  4. 网页底部的版权信息_Shopify底部的版权信息(Powered by Shopify )如何删除
  5. js客户端存储之Web存储
  6. onbeforeunload与onunlond的区别
  7. Python数据可视化实战——iris数据集可视化
  8. python qt5 数据改变 触发信号_pyqt5自定义信号实例解析
  9. start.bat怎么启动java项目_部署java项目为服务,设置开机自启动
  10. JSTL 核心标签库标签共有13个
  11. java获取数据库列的别名_java – JDBC ResultSet获取具有表别名的列
  12. Windows Phone开发(37):动画之ColorAnimation 转:http://blog.csdn.net/tcjiaan/article/details/7526026...
  13. php重置按钮,input 标签中 reset 重置按钮点击后表单不能清空的原因
  14. 如何用好谷歌等搜索引擎?
  15. 经济学人The right call on Huawei (20190427)
  16. 2022-VS2015-ACE+TAO(7.0.5)+CIAO+OpenDDS 3.16 编译
  17. MUD教程--巫师入门教程3
  18. 柬埔寨招聘中文计算机,柬埔寨ll中文老师1000美金+招聘机会来啦,快来围观!!!...
  19. 做程序界中的死神,锻造合适的斩魂刀
  20. 微信对账单--每日定时任务获取昨日微信支付账单

热门文章

  1. debian7配置apache+mysql+php
  2. “Cache-主存”和“主存和辅存”的区别
  3. D. Factorial Divisibility
  4. Windows 更改密码策略
  5. 微信分身服务器,苹果微信分身版
  6. 网络参数和Flops计算
  7. 愤世嫉俗的程序员,总在某乎发表言论,当起了“键盘侠”
  8. SQL server服务显示远程过程调用失败的解决方法
  9. 电影记忆之16(人工智能)
  10. 高项_第十章项目沟通管理