一、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. 从头学起androidlt;AutoCompleteTextView文章提示文本框.十九.gt;
  2. Linux的chattr与lsattr命令详解
  3. 如何在 CentOS 上启用 软件集 Software Collections(SCL)
  4. mysql重新用户设置密码_mysql用户密码如何重新设置?
  5. SpringBoot集成Spring Security(1)——入门程序
  6. mongodb spring 超时时间_mongoDB(spring 部分配置)
  7. 什么是SQL Server日志传送?
  8. template 不能分别在.h和.cpp中定义模板
  9. 《算法图解》第八章贪婪算法
  10. java档案管理系统_基于JAVA的简单档案管理系统
  11. SQL经典面试50题 | 附答案
  12. 学3D建模需要有美术功底吗?
  13. Excel使用技巧 查找重复值
  14. Hive虚拟内存溢出报错:2.9GB of 2.1GB virtual memory used. Killing container.解决办法
  15. jQuery Color Animate (jQuery 颜色变换动画) 插件
  16. Java练习之坦克大战!!!复制可以直接用!!!文章最后有飞机大战代码!!!
  17. 学习java必读书籍
  18. linux GPIO模拟PS2 键盘驱动
  19. XGBOOST + LR 模型融合 python 代码
  20. com1com2端口

热门文章

  1. 【华为云技术分享】敏捷设计,高效协同,凸显设计端云协同价值
  2. 雅可比矩阵:“Jacobian“矩阵
  3. Linux自动化部署Web服务
  4. 美国虚拟PSTN号码
  5. 【上海居转户申请流程及材料清单|干货分享】
  6. veins安装及运行笔记
  7. Android_TextView
  8. MongoDB 空间定位(点) 与 距离检索
  9. python框架sanic_Python Web框架Sanic框架初识
  10. php考核奖金制度,奖金制度与绩效考核