前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s+docker+Jenkins实现可持续集成、容器服务监控、平滑增加容器等功能

k8s+docker+Jenkins实现可持续集成、容器服务监控、平滑增加容器等功能

作者头像
林老师带你学编程
发布2019-05-26 00:00:06
1.8K0
发布2019-05-26 00:00:06
举报
文章被收录于专栏:强仔仔

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1434214

在项目日常开发过程中,我们需要可持续的集成项目。如果不是可持续集成的话,往往有新版本的时候才会在测试环境中重新部署。如果项目对迭代速度要求比较高的情况下,我们需要每次开发新增一个接口的时候,就马上把测试环境的代码也一样同步更新,然后重新部署。基于这种模式下面的话,我们不能再向以前传统的模式,将打包好的war或者jar上传到服务器种,然后重新部署运行。所以今天给大家介绍另外的一种模式。

应用场景:

问题:项目分为app和后台两种,为了保证再同一个环境下面测试,所以不可能链接开发本地服务进行测试,所以需要搭建一个测试环境,供app进行开发测试。这个时候就有一个问题,如果开发新增加功能或者app调试的时候发现问题,这个时候就需要提交新的代码或者修复bug,然后重新发布到测试环境中去。但是后台人员又不能进入Linux服务器中,只能通过Linux运维人员来重新部署,这样的效率就会极低。

方案:基于这种模式下面的,我们引入了Jenkins工具,通过Jenkins来拉取svn/git代码到服务器中,再Jenkins中编写Linux运行脚本,通过脚本我们就可以对代码进行编译运行,然后重新发布到服务器中运行。后端人员也不需要通知Linux运维人员来执行这个操作,直接再Jenkins的控制台就可以执行了。

应用场景升级:

场景升级一:

问题:随着开发的进行,项目越来越大,项目的模块也越来越多,每一次编译的时间也越来越久。可是对项目而已,我们修改的接口只是其中一个模块的代码,我们当然不希望因为修改一个模块的代码就重新部署所有模块项目。我们希望可以针对于修改的模块进行单独的部署,这样不仅可以提高部署的效率,也会让部署的时间大大的减少。

方案:基于上面的问题,我们引入了docker,然后修改Jenkins相关的Linux脚本。将项目按照模块来划分,每一个项目都可以单独来构建,各个项目之间没有必然的依赖。每个模块都会被构建为一个docker镜像,然后进行部署。这样我们就可以做到,针对于具体的模块来单独的部署,而且不会对其它模块产生任务影响。

场景升级二:

问题:随着项目逐步进行,某一个模块的项目可能需要部署多个的应用,某一些模块需要少部署一些。用专业术语来说就是平滑的新增或者减少模块服务数量,这样有一个前提就是,我们不能关闭所有服务然后重新初始化部署应用。也就是在线上就要做到这一点。还有就是随着模块的增加,服务数量越来越多,我们需要有一个监控平台来监控这些服务的运行情况。

方案:基于上面的问题,我们引入了kubernetes(简称k8s),通过k8s我们可以在k8s给我们提供一个管理平台上面就可以做到上面的这些需求,比如关闭某个服务,添加某个服务、监控服务的运行状态等等之类的。

下面就是k8s+docker+Jenkins整个模型的流程图,如下所示:

总体流程:

  • 在开发机开发代码后提交到gitlab
  • 之后通过webhook插件触发jenkins进行构建,jenkins将代码打成docker镜像,push到docker-registry
  • 之后将在k8s-master上执行rc、service的创建,进而创建Pod,从私服拉取镜像,根据该镜像启动容器

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年06月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档