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 QuickStart 2.3 容器注册
RedHat OpenShift QuickStart 2.4 容器主机