RedHat OpenShift QuickStart

Posted tiandz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RedHat OpenShift QuickStart相关的知识,希望对你有一定的参考价值。

openshift 提供了命令行工具和web可视化页面,这些工具通过REST API去和openshift交互

 

1. 探索命令行

2. 探索web console

3. 部署一个docker镜像

4. 扩展应用实例

5. 路由HTTP请求

6. 从源代码构建

 

1. 探索命令行

通过OC命令去访问openshift的Command Line Interface(CLI)

登陆:

$ oc login

 

技术图片

 

 

 

使用whoami查看当前用户:

$ oc whoami
developer
$

 

2. 探索web console

使用web console去登陆:

技术图片

 

 

创建项目:

技术图片

 

 

创建完成后,如下会显示项目的一些基本信息:

技术图片

 

 

在导航栏最上面我们可以看见当前角色是admin,点击administer,可以切换不同的角色,从而展示不同的页面:

 

技术图片

 

下面是开发人员视角:

 

技术图片

 

 

 

3. 部署一个docker镜像

由于这是一个空项目,拓扑图里有这些选项:

From Git, Container Image, From Catalog, From Dockerfile, YAML, Database;

下面从容器镜像(Container Image)选项去创建一个应用:

在将来,要返回这个方法菜单去给你的项目添加新的内容,你可以点击左侧导航栏的 +Add

 

在Image Name里输入如下镜像信息(官方文档提供)

docker.io/openshiftroadshow/parksmap-katacoda:1.2.0

 

然后点击搜索按钮,会显示镜像的相关信息

技术图片

 

 

此时应用名称(Application Name)会自动填充为parksmap-katacoda-app,名称(Name)会填充为parksmap-katacoda

默认情况下,通过容器镜像的方式创建会自动给你的应用创建一个路由,这个路由可以使你的应用可以被一个公开的URL访问

技术图片

为了后续学习路由的创建,这里先把取消复选框的选择。

点击蓝色的create按钮,此时会为你创建你选择的应用

 

技术图片

这就是在openshift上部署容器镜像的所有步骤

 

4. 扩展应用实例

先点击应用的圈,在点击overview,在点击上箭头

 

技术图片

为了验证我们是否成功扩展应用为两个,点击旁边的resource,会显示有两个副本,显示如下:

 

技术图片

 

 

总的来说,扩展应用就是如此简单。应用扩展可以非常快的发生是因为openshift只是启动存在镜像的新的实例,特别是该镜像已经缓存在节点上的情况下。

 

应用程序自愈:

Openshift的deploymentConfigs会不断监控,去查看pods是否以期待的数量运行,如果实际状态偏离的期望状态,openshift将会修复这种情况。

点击pods列表中其中一个名字,再点击Actions,选择Delete Pod,在弹出的对话框中选择delete:

技术图片

 

 

此时,会发现出现了三个pods:

技术图片

 

 

我们删除的那个pod此时正在终止(Terminating)(正在被清理),一个新的pod会被创建出来,因为openshift总是确保一个pod挂掉,就会创建出一个新的pod去顶替死掉的位置。

缩放容量:

使我们应用减少为一个实例,点击侧面导航栏Topology返回拓扑视图,点击我们创建的应用,点击overview,点击向下箭头缩放到一个实例。

 

5. 路由HTTP请求

Services在openshift中提供内部抽象和负载均衡。但是有时候在openshift之外的客户(用户、系统、设备等)访问在openshift中的应用是通过路由层,控制这个资源的对象就是一个路由。

默认的openshift路由器(HAProxy)使用传入的http请求头来确定代理连接的位置。你可以将路由设置为安全的,例如TLS。如果你想要你的服务扩展一下,能够被外界所访问,那么你就需要设置一个路由。

在之前教程中提到,通过容器镜像的方式去创建去部署应用会默认给你创建了一个路由,因为我们取消勾选了这个选项,所以我们现在手动去创建一个路由。

创建一个路由

幸运的是,创建一个路由是一个非常简单的过程。首先,在develper下拉菜单中选择administer视图,确保你的myproject项目在项目列表中是勾选的。其次,在左边导航栏点击networking,然后routes。

点击create route 按钮

技术图片

 

 

在name中输入parksmap-katacoda,Service选择parksmap-katacoda,目标端口选择8080,其他设置默认。

技术图片

 

 

当你点击create后,这个路由将被创建并展示在路由详情页。

技术图片

 

 

你同样可以在开发人员视图下看见这个路由。现在切换回开发人员视图,进入到拓扑视图,在parksmap-katacoda可视化中,你应该在圆圈的右上角看见一个图标。这个就代表路由,如果你点击它,它就会在你浏览器中打开这个URL。

技术图片

 

 

 

当你点击了路由图标,你会在浏览器中看见下面这个:

技术图片

 

 

 

6. 从源代码构建

在这章节中,我们将要去部署ParksMap应用的后端服务。后端服务将会通过REST API提供各个国家公园的数据,ParksMap前端应用将会去查询这些数据并显示在你浏览器的交互式地图上。

背景:Source-to-Image(S2I)

在之前的章节中,学会了通过存在的容器镜像去部署应用。在这个章节中,将会学如何直接通过远程Git仓库中保存的源代码来部署应用。这将使用Source-to-Image(S2I)工具来完成。

S2I的文档从以下方面描述它:

Source-to-Image(S2I)是一个构建可复制容器镜像的工具。S2I通过将源代码注入到容器镜像中,组装后的新镜像包含了构建器镜像和已经构建完成的源代码,产生的结果就可以与docker run一起使用了。S2I支持增量构建,可以重用之前下载的依赖和之前构建的工具包。

openshift支持S2I,并将其作为构建机制之一(除了从Dockerfile和自定义构建容器镜像之外)。

关于S2I的详细资料可以在 OpenShift S2I documentation 和 GitHub project respository for S2I 去查看。

关于S2I,你只需要记住唯一关键点是它从你的源代码构建处理你的容器镜像。

 

部署应用代码

这章要部署的应用叫做nationalparks-katacoda,它是一个python应用,将会通过REST API以JSON格式返回世界各地主要国家公园的坐标。

源代码可以在这个GitHub仓库查看:https://github.com/openshift-roadshow/nationalparks-katacoda

构建这个应用你需要在开发人员视图下点击左侧导航栏的+Add。确保你的web console打开并且你所在的项目叫做myproject,这次不是使用容器镜像,而是使用From Catalog,将会出现以下界面:

技术图片

 

在语言一节中,在受支持的语言列表中选python,当提供Django + Postgres SQL、Django + Postgres SQL (Ephemeral)和Python选项时,选择Python选项并单击Create Application。

技术图片

 

使用以下Git代码仓库:

https://github.com/openshift-roadshow/nationalparks-katacoda

输入完成后,在输入框外面点击一下,name输入框就会出现nationalparks-katacoda

 

技术图片

 

其他选项默认。

点击屏幕右侧create按钮会回到拓扑视图,点击nationalparks-katacoda 应用你会看见resource里,你会看见在builds部分里你的构建正在运行。

 

技术图片

 

这是S2I在git仓库中拉取源码创建镜像然后将要运行的步骤。

点击构建的View Logs链接,你可以看见S2I下载运行应用程序,准备应用程序和创建镜像所需要的所有python包。

技术图片

当构建完成后返回拓扑视图,查看正在部署的镜像和正在启动的应用。当你在构建日志中看见Push successful时,构建就完成了。

技术图片

 

nationalparks-katacoda组建左下角绿色勾标记表示构建已经完成,圆圈从淡蓝色变为蓝色,后端应用nationalparks-katacoda已经被部署。

现在,回到浏览器中的ParksMap前端应用程序,应该能够看到显示的国家公园的位置。如果浏览器中还没有打开应用程序,请转到拓扑视图,并单击parksmap-katacoda应用程序右上角的图标,以在浏览器中打开URL。

 

技术图片

 

 

原文:https://learn.openshift.com/introduction/getting-started/

以上是关于RedHat OpenShift QuickStart的主要内容,如果未能解决你的问题,请参考以下文章

在线阅读 Redhat OpenShift 内部的秘密?

RedHat OpenShift QuickStart 2.3 容器注册

RedHat OpenShift QuickStart 2.4 容器主机

OpenShift RedHat 上 CI 中的 ImageMagick 库无法正常工作

OpenShift image registry 概述

一文读懂OpenShift总体架构设计 | 五一送福利