实战派 | 不讲理论讲实战,现场耍一耍openshift | 容器在企业中的应用

“如果将现在主流IT技术比作武林的各项武功,那么将Oenshift比喻成天龙八部的中六脉神剑,一点也不为过。”

前言

在2017年1月11日,红帽举办了Openshift Workshop。当天有将近40客户和合作伙伴参与了培训。在培训中,我们一起在AWS公有云上部署了40套openshift环境,并且进行了大量有益的实验。

由于有很多关心OpenShift的朋友未能参加培训,因此笔者在实验环境再次重做了一遍实验,并录了下来,以供读者参考。如果读者未参加过此培训,笔者建议读者先阅读如下文章:

厉害了word哥 | 从两张图看红帽最高深的武功 |OpenShift

视频一共有9段,笔者已上传到腾讯视频上。由于公众号单篇只能放入3个视频,为了读者观看的连续性,我未分开多篇文章发表。因此后6段视频笔者放的是链接。为了方便理解,笔者将对每段视频的内容进行文字描述。需要注意的是,本视频版权归笔者和红帽公司所有。

OSE操作1-创建一个应用parksmap

在本实验中,我们通过使用docker.io上一个现成镜像,部署了一个名字叫parksmap的应用。应用部署好以后,手工创建route,以便我们在外网能够访问这个应用。

最终应用呈现效果:

操作视频如下:

OSE操作2-创建一个新的应用parksmap OSE操作3-创建mongodb

在这两个实验中,首先通过S2I的方式部署一个应用nationalparks(指定building image和source code git)。然后通过镜像创建一个数据库mongodb。接下来,向数据库中插入2740行数据。然后将nationalparks和mongodb关联起来。再将第一步创建的应用parksmap和nationalparks关联起来,这样应用展示的界面除了有地图,还有坐标。

最终应用效果:

操作视频如下:

OSE操作4-为应用创建外置配置参数

在上面的实验中,应用访问数据库的参数,是通过设置环境变量完成的。但在很多实际应用中,这种方法比较麻烦。为了实现解耦,在本实验中,通过创建参数文件,让应用的容器被创建的时候,自动带入和数据相关的参数文件。

视频链接:https://v.qq.com/x/page/j0367c5t7xl.html

CI/CD准备

接下来两个实验,是为了做CD/CD实验的准备。在OSE操作步骤5中,先部署一个jenkins的容器,在实验6中,创建一个live的应用--nationalparks-live和mongodb-live,即模拟生产环境。此前一系列步骤创建的不带live标签的应用(nationalparks和mongodb),模拟成开发测试环境的应用。

OSE操作5-部署jenkins

https://v.qq.com/x/page/i03673xj8si.html

OSE操作6:创建两个带live标签应用,模拟生产环境。

https://v.qq.com/x/page/l0367njrpoz.html

OSE操作7-手工触发build实现CD

https://v.qq.com/x/page/g0367rbay0r.html

在实验7中,首先部署一个pipeline的容器,用于管理nationalparks应用。然后手工触发build。在测试环境的生成的镜像被更新到生产之前,需要手工批准一下。CI/CD与devops的一个显著的区别是dev阶段build好的image,需要在经过相关人员批准以后,才会在生产上部署。

OSE操作8-更新源代码,自动触发S2I。

https://v.qq.com/x/page/t0367fiyggo.html

在本实验中,笔者手工修改了source code。web hookers检测到以后,自动触发应用的build、deploy、Test。然后笔者手工批准了向生产环境部署。最终,新代码在生产环境部署成功。本实验模拟了真正意义上的CI/CD。

OSE操作9

https://v.qq.com/x/page/w0367wciugm.html

在Openshift,部署应用的方法,通常有几个(有但不限于):

通过docker image部署:这种通常直接部署已经包含应用的打包好的镜像,因此通常没有bc。

通过S2I 部署:通过选择building image和指定code。指定完以后,code 先进行build,build成功,会将它push到内部的镜像库,然后部署一个新的pod。因此S2I通常会触发build和deploy。

通过模板部署

模板是可以把和一套应用相关的配置,都写在一起,然后通过这个模板部署应用。使用模板部署最大的好处在于,他可以加快应用的部署速度。模板是由实现写好的yaml或json文件创建的。

本实验展示了通过模板方式,创建一个新的应用-MLBParks。该应用与之前步骤部署的应用相互整合,最终应用展示的效果如下:

原文发布于微信公众号 - 大魏分享(david-share)

原文发表时间:2017-01-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

移动云平台的基础架构之旅(二):云代码

云代码的由来 随着MBaaS的发展,取代移动企业应用程序平台的趋势也越来越明显。MBaaS系统为了让企业能方便快捷的开发自己移动应用程序,提供了诸多移动客户端支...

2586
来自专栏ArrayZoneYour的专栏

Kubernetes的服务网格(第1部分):获取关键的服务指标

看到这个标题,你可能会问:什么是服务网格?在云服务广泛应用的现在又如何应用?马上我们就会在本文中将向您展示如何在Kubernetes上使用linkerd作为服务...

3518
来自专栏FreeBuf

关于“入侵检测”的一些想法

离开长沙的时候写了一篇文章“左右互博:站在攻击者的角度来做防护”(freebuf上可以找到),一晃已经是三年了。这三年接触了很多东西,自己也有过很多想法,但实际...

2510
来自专栏IT笔记

讯飞语音JavaWeb语音合成解决方案

在线语音合成 将文字信息转化为声音信息,给应用配上“嘴巴”。我们提供了众多极具特色的发音人(音库)供您选择。其合成音在音色、自然度等方面的表现均接近甚至超过了人...

48114
来自专栏腾讯云容器服务团队的专栏

腾讯云容器服务监控体系详解

腾讯云容器服务监控系统可以监控集群中所有的节点,服务,实例,容器的相关信息,并且以曲线的方式展示给用户,同时支持多种粒度的统计方式。本文将讲解容器监控框架和指标...

6530
来自专栏FreeBuf

渗透测试专用版Linux:BackBox3.13发布

BackBox团队近日很高兴地宣布Linux的更新版本,版本3.13。BackBox是基于Ubuntu的Linux发行版本,它被用于网络渗透测试及安全评估。 更...

2008
来自专栏FreeBuf

互联网公司WAF系统设计

0×01 WAF简介 WAF 全称是Web Application Firewall, 简单讲就是web防火墙, 是对web业务进行防护的一种安全防护手段。 ...

45910
来自专栏腾讯云技术沙龙

王蕴达:腾讯云 Kubernetes 一键部署实践

很多人在实际工作中都使用过Kubernetes,我们的容器服务在2016年年底开始提供全托管的Kubernetes服务,主要提供了四个方面的功能。首先是提供了一...

1.9K5
来自专栏魏艾斯博客www.vpsss.net

护卫神主机大师-Windows 环境一键包安装教程

8287
来自专栏IT技术精选文摘

我们是如何优化HAProxy以让其支持200万个并发SSL连接的?

仔细上上图,我们可以发现两个信息: 该机器建立了238万个TCP连接; 此时内存使用量大约在48G左右。 看上去很赞吧?如果有人能够提供配置,并且在单台部署HA...

1.7K8

扫码关注云+社区

领取腾讯云代金券