Jenkins+Git+Docker+K8s部署
准备工作
- Jenkins已安装
- Docker和K8s部署运行成功
- 代码管理工具使用Git
最近公司项目使用Jenkins+Git+Docker+K8s进行持续化构建部署,这里笔者整理了一下构建部署的相关操作,以便留存查看。
项目和工具介绍
这里有两个项目:前端和后台,同样都是使用Git代码管理工具,目前是使用所谓的微服务进行发布操作,结合Docker和K8s进行部署发布。
部署步骤
传统的服务发布步骤:
- 拉取最新的代码
- 使用ant或其他工具编译项目代码
- 将编译的项目代码(有些配置文件是不变的,需要覆盖),打包上传到tomcat或glassfish部署
- 重启服务
而使用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有三个步骤
- 创建image:Creat image,说明是使用哪个分支
- 推送image至服务器:Push image
- 删除原来的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部署的更多相关文章
- Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)
通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...
- jenkins+git+docker实验环境的搭建
持续集成(c/i)的实验环境 git/harbor服务器 ip 192.168.200.132 docker服务器 ip 192.168.200.149 Jenkins服务器 ...
- (一)jenkins+git+docker
目录 一.发布流程设计 1.工作流程 2.环境规划如下 二.部署Git仓库 1.创建Git用户并设置密码 2.创建仓库 3.免密访问 4.在jenkins那台机上做ssh认证 三.准备Jenkins环 ...
- jenkins+git+maven 增量部署思路以及相关脚本
之前通过jenkins+Git+maven这种方式打war包然后scp到测试环境使用,但是现在项目组要求打增量包,即只部署修改的文件和配置文件. 核心问题:如何获取到变动的文件??? 前置条件:初始化 ...
- Jenkins+harbor+gitlab+k8s 部署maven项目
一.概述 maven项目部署流程图如下: 环境介绍 操作系统 ip 角色 版本 ubuntu-16.04.4-server-amd64 192.168.10.122 Jenkins+harbor Je ...
- jenkins +gitlab +docker 自动化部署tomcat 项目
实验环境 实验设备 三台服务器 centos 7.X 以上 内存 2-3G左右 192.168.1.195 (jenkins最新+ git 2.8+maven 3.5 +tomcat 8+java1. ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken
项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...
- k8s+Jenkins+GitLab-自动化部署asp.net core项目
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...
- k8s+Jenkins+GitLab-自动化部署项目
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...
随机推荐
- hihocoder 微软编程之美2015 初赛 第一场 (树算法 + 暴力思想 + 搜索思想)
题目1 : 彩色的树 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵n个节点的树,节点编号为1, 2, …, n.树中有n - 1条边,任意两个节点间恰好有一条路 ...
- SQL语句编写注意问题
下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍.在这些where子句中,即使某些列存在索引,但是由于编写了劣质的SQL,系统在运行该SQL语句时也不能使用该索引,而同样使用全表扫描 ...
- LVS与Keepalived
lvs与Nginx区别 LVS的负载能力强,因为其工作方式逻辑非常简单,仅进行请求分发,而且工作在网络的第4层,没有流量,所以其效率不需要有过多的忧虑. LVS基本能支持所有应用,因为工作在第4层,所 ...
- VS调试的问题
调试Vs,使用本地IIS也不行,使用外部服务器也不行,最后运行VS2013以管理员身份就可以了
- python把源代码打包成.exe文件
1.在windows命令行把当前文件夹用cd命令切换到源代码所在文件夹. 2.输入命令:pyinstaller -w -F main.py
- python- python内置模块 面向对象
1.configparser模块 configparser用于处理特定格式的文件,其本质上是利用open来操作文件 # 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2 ...
- HDU 6170 Two strings (dp)
/** * 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6170 * 字符串match, '.'代表匹配任意一个字符,"*" 代表 ...
- linux命令学习笔记-md5sum 命令详解
前言 在网络传输.设备之间转存.复制大文件等时,可能会出现传输前后数据不一致的情况.这种情况在网络这种相对更 不稳定的环境中,容易出现.那么校验文件的完整性,也是势在必行的. 使用说明 md5sum命 ...
- poj2392磊石头——排序后背包
题目: 首先按限制高度从小到大排序,不会影响可行解,而不排序可能卡掉正确的情况: 用%2滚动数组时一定注意每次复制上一种情况,因为这个WA了好几次. 代码如下: #include<iostrea ...
- C#如何把XSD中HexBinary类型序列化uint类型
xml schema中有hexBinary类型, 我们在实现C#的Serialization时,一般默认把hexBinary映射为byte[],但是有些情况我们需要把 hexBinary映射为uint ...