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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhiqiang0316/article/details/80792247

在项目日常开发过程中,我们需要可持续的集成项目。如果不是可持续集成的话,往往有新版本的时候才会在测试环境中重新部署。如果项目对迭代速度要求比较高的情况下,我们需要每次开发新增一个接口的时候,就马上把测试环境的代码也一样同步更新,然后重新部署。基于这种模式下面的话,我们不能再向以前传统的模式,将打包好的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,从私服拉取镜像,根据该镜像启动容器

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2019-05-02 如何有效提交 Bug 报告?

    花些时间,心里回想一下你电脑或手机上用的所有软件,有多少软件是付费的呢?50%?20%?0%?你可能像我一样,使用的多数软件都是免费的。我几乎是非开源软件不用的...

    Albert陈凯
  • NVIDIA Jetson Nano新手手册:一场当没有人告诉你该做什么你要能够知道该做什么的无畏冒险

    吉浦迅从NVIDIA发布第一款嵌入式开发套件Jetsn TK1开始就建立了用户技术QQ群。凭借多年用户技术支持经验,我们深刻明白一个伟大产品要能够渗透到用户的应...

    GPUS Lady
  • 测试工程师应该具备的基本功底

    一般而言,操作系统类型可以分为:unix、linux、windows,咦苹果系统去哪了? 苹果系统的核是unix的一个分支。当然了要是细分下去会更多,大家大体了...

    苦叶子
  • 2019版CCF推荐国际学术会议和期刊目录发布!AI领域七大A类会议,你认同吗?

    近日,中国计算机学会 (CCF) 正式发布《中国计算机学会推荐国际学术会议和期刊目录》(下文简称 “目录”)。

    新智元
  • [Paper Reading] Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems

    今天看到一篇论文:Linux Block IO: Introducing Multi-queue SSD Access on Multi-core System...

    linjinhe
  • ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(一)

    系统:Ubuntu 18.04.2 LTS + ROS Melodic(1.0)1.14.3 ~ 1943 + ROS  Crystal(2.0)0.6.1 ~...

    zhangrelay
  • Ubuntu能取代Windows吗?

    任何一种事物都有其必要性,如同现在说的,现在企业玩的其实都是差异化东西,不可能一拥而上,其实现在linux和windows现在处于一种比较平衡的阶段,linux...

    程序员互动联盟
  • 工具资源系列之给 windows 装个 vmware 虚拟机

    如果长时间处于同一种环境,慢慢得我们会觉得有些无聊,所以适当地出去走走看看外面的世界能带给我们不一样的体验.

    雪之梦技术驿站
  • 为什么电脑黑客基本上不用鼠标?

    作为一个程序员本身也不是什么黑客,但对于网络上传说中的神化程序员的一些做法还是比较反感,对于黑客更加神化了,什么瞬间秒杀什么安全系统漏洞之类的,能够破解各种安全...

    程序员互动联盟
  • TCGA数据下载—TCGAbiolinks包参数详解

    最近才开始使用TCGAbiolinks这个包从TCGA数据库官网下载数据,发现很多参数不知道去哪里找,所以就查找资料总结了一下。以下载肝脏肝细胞癌(LIHC)的...

    生信技能树

扫码关注云+社区

领取腾讯云代金券