准备工作

  1. Jenkins已安装
  2. Docker和K8s部署运行成功
  3. 代码管理工具使用Git

最近公司项目使用Jenkins+Git+Docker+K8s进行持续化构建部署,这里笔者整理了一下构建部署的相关操作,以便留存查看。

项目和工具介绍

这里有两个项目:前端和后台,同样都是使用Git代码管理工具,目前是使用所谓的微服务进行发布操作,结合Docker和K8s进行部署发布。

部署步骤

传统的服务发布步骤:

  1. 拉取最新的代码
  2. 使用ant或其他工具编译项目代码
  3. 将编译的项目代码(有些配置文件是不变的,需要覆盖),打包上传到tomcat或glassfish部署
  4. 重启服务

而使用jenkins之后,我们只需要鼠标轻轻一点,即可完成1-4的操作;省时省力,缩短了我们的构建时间,使得错误率大大降低。其中jenkins还可以根据项目实际情况,进行定时构建。

jenkins详细部署

新建项目-Genenral

我们首先新建一个自由风格的项目,设置项目的名称,然后进行项目设置详情基础页面,如图

如上图所示:在Gnenral中设置了项目的基本描述、构建结果保存以及参数化构建过程,其中[丢弃旧的构建]:是保存N次构建结果信息,而参数化构建,这里是直接获取Git的分支进行构建。这里使用的是插件[Git Parameter]进行参数化构建,首次使用需安装此插件。

丢弃旧的构建:即保存最近N次的构建结果,查看如图

参数化构建:获取Git分支进行构建部署,如图

源码获取:Source Code Management

拉取最新的代码信息,这里使用的工具是Git,配置具体如图

这里配置了Git的URL地址以及使用的账号信息,其次还有就是拉取的分支信息,Git工具默认使用Jenkins自带的版本即可。

构建-Build

前端项目

这里执行构建的时候,前端项目使用的是shell执行命令,使用的命令如下

cd $WORKSPACE
yarn install --ignore-engines
yarn build

前端项目部署需要先执行此问题,具体的项目有不同的执行命令,如图

后端项目

而一般后台,使用的是Maven进行构建的,编译命令如下

clean install -U -Pbeta -e

如图

Build-Post Steps

前面说过此项目是微服务搭建的,使用到了Docker和K8s,这里就用到了Docker。

先上图:

这里使用Docker有三个步骤

  1. 创建image:Creat image,说明是使用哪个分支
  2. 推送image至服务器:Push image
  3. 删除原来的image:Remove image

重启服务

这里是使用Kubernetes进行服务的重启和发布,命令如下

kubectl patch deployment 项目名称 -p \
"{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"

具体执行命令信息可以参考运维或开发人员的脚本,如图

至此,使用Jenkins+Git+Docker+K8s完成了项目的部署,接下来进行构建的时候,可以直接点击[Build with Parameters]拉取不同的分支进行项目构建部署,如图

这里只说明了的Docker和K8s如何配合Jenkins如何使用,更详细的使用方法和命令可以自行百度

Jenkins+Git+Docker+K8s部署的更多相关文章

  1. Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)

    通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...

  2. jenkins+git+docker实验环境的搭建

    持续集成(c/i)的实验环境 git/harbor服务器    ip 192.168.200.132 docker服务器          ip 192.168.200.149 Jenkins服务器 ...

  3. (一)jenkins+git+docker

    目录 一.发布流程设计 1.工作流程 2.环境规划如下 二.部署Git仓库 1.创建Git用户并设置密码 2.创建仓库 3.免密访问 4.在jenkins那台机上做ssh认证 三.准备Jenkins环 ...

  4. jenkins+git+maven 增量部署思路以及相关脚本

    之前通过jenkins+Git+maven这种方式打war包然后scp到测试环境使用,但是现在项目组要求打增量包,即只部署修改的文件和配置文件. 核心问题:如何获取到变动的文件??? 前置条件:初始化 ...

  5. Jenkins+harbor+gitlab+k8s 部署maven项目

    一.概述 maven项目部署流程图如下: 环境介绍 操作系统 ip 角色 版本 ubuntu-16.04.4-server-amd64 192.168.10.122 Jenkins+harbor Je ...

  6. jenkins +gitlab +docker 自动化部署tomcat 项目

    实验环境 实验设备 三台服务器 centos 7.X 以上 内存 2-3G左右 192.168.1.195 (jenkins最新+ git 2.8+maven 3.5 +tomcat 8+java1. ...

  7. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

    项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...

  8. k8s+Jenkins+GitLab-自动化部署asp.net core项目

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...

  9. k8s+Jenkins+GitLab-自动化部署项目

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...

随机推荐

  1. iPad actionsjeet

    在iphone和ipad上使用UIActionShee控件t的效果会不一样,在苹果的官方文档中有相关说明: 在ipad上使用UIActionSheet控件改控件不再从底部弹出,而是从屏幕中间弹出与UI ...

  2. HTML5/CSS3淡入淡出滑块焦点图

    在线演示 本地下载

  3. 郝健: Linux内存管理学习笔记-第1节课【转】

    本文转载自:https://blog.csdn.net/juS3Ve/article/details/80035751 摘要 MMU与分页机制 内存区域(内存分ZONE) LinuxBuddy分配算法 ...

  4. 和菜鸟一起学android4.0.3源码之硬件gps简单移植【转】

    本文转载自:http://blog.csdn.net/mwj19890829/article/details/18751447 关于Android定位方式 android 定位一般有四种方法,这四种方 ...

  5. git format-patch的使用【转】

    本文转载自:http://blog.chinaunix.net/uid-28621021-id-3487102.html git format-patch的使用   1.在dev1分支上,打出所有de ...

  6. dotnet core on Linux 环境搭建及入门demo

    首先感谢张善友大大提供的腾讯云实验室链接(https://www.qcloud.com/developer/labs/list). 以下是整个搭建过程及简单demo实例 1.搭建 .NET Core ...

  7. 【Codeforces】Gym 101156E Longest Increasing Subsequences LIS+树状数组

    题意 给定$n$个数,求最长上升子序列的方案数 根据数据范围要求是$O(n\log n)$ 朴素的dp方程式$f_i=max(f_j+1),a_i>a_j$,所以记方案数为$v_i$,则$v_i ...

  8. Visual Studio 2012简体中文专业版密钥(激活码)

    VS2012 正式版在Beta版的基础上进行了很多改进,尤其是加入了全新的用户界面. VS2012 的硬件需求与VS2010相同,不过由于 Visual Studio 2012 利用了新版 Windo ...

  9. 树莓派与 Python —— GPIO

    首先来直观地认识树莓派提供的 40 个引脚(GPIO,general purpose i/o,接收外界输入,并向外界提供运算处理后的输出): 1. 安装 从远程库(repositories)中下载安装 ...

  10. P2024 [NOI2001]食物链[扩展域并查集]

    大水题一道啊,几分钟切掉. 还是扩展域,每个点拆3个点,之间连边表示有关系(即捕食关系).然后随便判定一下就好了,不难,毕竟NOI上古题目. #include<iostream> #inc ...