微服务整合及Jenkins的使用

微服务整合及Jenkins的使用

任务一 Docker Compose编排工具

  1. 安装条件
    Docker Compose是依赖于Docker引擎的,所以在安装Docker Compose之前要确保机器上已经安装了Docker.
    微服务整合及Jenkins的使用_第1张图片
  1. 安装Compose

(1)使用curl命令从GitHub的Compose仓库拉取Docker Compose
在这里插入图片描述
(2)更改Docker Compose的可执行文件权限
在这里插入图片描述
(3)查看安装的Docker Compose效果及版本
在这里插入图片描述
2. 卸载Compose
$ sudo rm /usr/local/bin/docker-compose
3. Compose file文件的使用说明
Docker Compose编排工具的使用非常简单,只需如下三步
a) 编写Dockerfile文件;
b) 定义yml文件(通常是docker-compose.yml);
c) 运行服务部署命令。

任务二 微服务与Docker的整合

  1. 添加Dockerfile文件
  1. 针对一个子项目模块编写对应的Dockerfile文件。这里以用户订单管理微服务模块为例,Dockerfile内容如下
    微服务整合及Jenkins的使用_第2张图片
    微服务整合及Jenkins的使用_第3张图片
  2. 添加dockerfile-maven插件
    微服务整合及Jenkins的使用_第4张图片
  3. 添加docker-compose.yml配置文件
    微服务整合及Jenkins的使用_第5张图片
    微服务整合及Jenkins的使用_第6张图片
    微服务整合及Jenkins的使用_第7张图片

任务三 环境搭建以及镜像准备
一. 环境搭建

  1. 搭建Docker主机
    本次实验因为是基于之前的Swarm集群而做,三台主机已安装配置好docker。
  2. 安装应用编译工具JDK
    (1)上传所需Linux版本的JDK工具包并解压
    微服务整合及Jenkins的使用_第8张图片

(2)将解压下的文件移动到自定义目录下(此处有误,应为 cp -r jdk1.8.0_131 /usr/lib/jvm)
在这里插入图片描述
(3)配置环境变量(编辑/etc/profile)
微服务整合及Jenkins的使用_第9张图片
(4)生效环境变量并测试java是否正确安装(编辑/etc/profile)
微服务整合及Jenkins的使用_第10张图片
3. 安装应用打包工具Maven
(1)上传所需Linux版本的Maven工具包并解压, 将解压下的文件移动到自定义目录下
在这里插入图片描述
(2)添加环境变量
在这里插入图片描述
(3)生效环境变量查看Maven信息
在这里插入图片描述
二. 镜像准备
(1)修改配置位置settings.xml文件
由于之前dockerfile-maven的配置,在完成打包后会自动构建镜像并推送到指定仓库,但无论是推送到Docker Hub还是本地私有镜像仓库,必须先登录认证才可以推送。因此需要修改Maven存放jar文件的位置以及配置服务认证信息。
在这里插入图片描述
在这里插入图片描述
(2)上传项目
微服务整合及Jenkins的使用_第11张图片
(3)执行mvn install打包(一定要切换到程序pom.xml位置,同时因为我在本地执行过mvn install,所以我将repo复制到了集群中)
微服务整合及Jenkins的使用_第12张图片
微服务整合及Jenkins的使用_第13张图片
微服务整合及Jenkins的使用_第14张图片
(4)查看生成镜像
在这里插入图片描述
微服务整合及Jenkins的使用_第15张图片

任务四 微服务的手动部署
一. 非集群环境下的服务部署
(1)登录私有仓库
在这里插入图片描述
(2)部署服务(进入到项目docker-compose.yml文件所在目录下,执行服务部署命令部署整个微服务项目)
微服务整合及Jenkins的使用_第16张图片
微服务整合及Jenkins的使用_第17张图片
(3)验证服务是否启动
微服务整合及Jenkins的使用_第18张图片
(4)查看项目启动情况
微服务整合及Jenkins的使用_第19张图片
(5)关闭整个服务
微服务整合及Jenkins的使用_第20张图片
二. 集群环境下服务部署

  1. 集群服务中的网卡选择性注册
    (1)查看网络列表详情
    在这里插入图片描述
    微服务整合及Jenkins的使用_第21张图片
    (2)根据微服务项目的需求,在集群环境下预先自定义一个以overlay为驱动的网络进行本地集群服务网络管理
    微服务整合及Jenkins的使用_第22张图片
    (3)在所有需要注册到Eureka注册中心的服务(包括microservice-gateway-zuul,microservice-orderservice和microservice-userservice服务)的配置文件application.yml中,添加指定注册到Eureka中心的优选服务子网地址信息
    微服务整合及Jenkins的使用_第23张图片
    微服务整合及Jenkins的使用_第24张图片
    微服务整合及Jenkins的使用_第25张图片
    (4)修改服务部署的编排文件docker-compose.yml,将所有服务启动时的网络设置为前面预先定义的microservice_net网络来进行网络管理,将修改后的编排文件重命名为docker-compose-swarm.yml
    微服务整合及Jenkins的使用_第26张图片
    微服务整合及Jenkins的使用_第27张图片
    微服务整合及Jenkins的使用_第28张图片

  2. 集群服务部署
    (1)登录私有仓库并部署服务
    微服务整合及Jenkins的使用_第29张图片
    (2)查看服务列表详情
    微服务整合及Jenkins的使用_第30张图片
    (3)在集群管理节点上使用docker stack相关指令查看整个微服务项目在集群节点的分配与启动情况
    微服务整合及Jenkins的使用_第31张图片
    (4)在集群管理节点上通过docker service提供的服务日志指令来进一步查看某个具体服务从启动到运行的整个日志情况
    微服务整合及Jenkins的使用_第32张图片

  3. 微服务测试
    (1)通过visualizer集群服务可视化工具查看服务启动情况。微服务项目部署成功后,可以通过地址http://192.168.1.3:8081(对应您集群的manager1的主机地址)查看集群服务可视化工具visualizer界面的显示情况
    微服务整合及Jenkins的使用_第33张图片
    (2)通过Eurkea注册中心查看服务的启动情况,当然也可以通过地址192.168.1.3:8761访问Eureka服务注册中心的情况,查看其他微服务是否都已经启动并注册到该注册中心
    微服务整合及Jenkins的使用_第34张图片
    (3)将数据库数据初始化。MySQL数据库是使用Docker容器构建的,所以对MySQL数据库进行初始化时需要先安装一个MySQL客户端
    微服务整合及Jenkins的使用_第35张图片
    (4)连接数据库(默认密码root)
    微服务整合及Jenkins的使用_第36张图片
    (5)创建所需要的数据库microservice_mallmanagement及表和数据
    微服务整合及Jenkins的使用_第37张图片
    微服务整合及Jenkins的使用_第38张图片
    微服务整合及Jenkins的使用_第39张图片
    (6)测试微服务(分别连接用户管理微服务和订单管理微服务的访问地址进行测试)
    微服务整合及Jenkins的使用_第40张图片
    微服务整合及Jenkins的使用_第41张图片
    微服务整合及Jenkins的使用_第42张图片
    微服务整合及Jenkins的使用_第43张图片
    微服务整合及Jenkins的使用_第44张图片
    微服务整合及Jenkins的使用_第45张图片
    (7)测试验证API网关服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

任务五 使用JenKins自动部署微服务

  1. Jenkins介绍
    Jenkins是一个基于Java开发的开源软件项目,用于支持构建,部署和自动化任何项目。在实际开发中,通常将它作为项目的持续集成,部署工具来使用。Jenkins进行项目集成管理的流程如下。
    (1)开发人员将更改后的代码提交到代码仓库中(如GitHub);
    (2)持续集成工具Jenkins会定期(或人工手动)从代码仓库中拉取指定项目;
    微服务整合及Jenkins的使用_第46张图片
    (3)Jenkins工具会根据具体配置,自动化打包,构建镜像,推送镜像,并最终生成Docker容器来启动服务,形成对应的测试环境;
    (4)测试人员会在对用的测试环境下测试Jenkins自动化集成,部署的服务;
    (5)当项目测试成功后,可以使用Jenkins工具将测试成功的项目自动构建到发布环境下,也可以人工手段部署到发布环境下。
  2. Jenkins安装
    (1)下载Jenkins
    微服务整合及Jenkins的使用_第47张图片
    (2)上传至虚拟机并启动Jenkins服务
    微服务整合及Jenkins的使用_第48张图片
    微服务整合及Jenkins的使用_第49张图片
    (3)Jenkins初始化安装(通过主节点IP地址:49001访问)
    微服务整合及Jenkins的使用_第50张图片
    微服务整合及Jenkins的使用_第51张图片
    在这里插入图片描述
    (4)初始化认证密码
    微服务整合及Jenkins的使用_第52张图片
    微服务整合及Jenkins的使用_第53张图片
    (5)初始化插件安装
    微服务整合及Jenkins的使用_第54张图片
    微服务整合及Jenkins的使用_第55张图片
    (6)创建管理员用户(上一步插件安装完毕后自动转到该页面)
    微服务整合及Jenkins的使用_第56张图片
    微服务整合及Jenkins的使用_第57张图片
    微服务整合及Jenkins的使用_第58张图片
    微服务整合及Jenkins的使用_第59张图片
    微服务整合及Jenkins的使用_第60张图片
    到达该主页面后,就表示Jenkins安装及初始化完毕。
  3. Jenkins集成插件配置
    (1)安装Maven插件(依次点击主页面的”系统管理”–>”插件管理”–>”可选插件”面板,然后再右侧搜索框中输入”Maven Intergration”关键字进行搜索。)
    微服务整合及Jenkins的使用_第61张图片
    微服务整合及Jenkins的使用_第62张图片
    微服务整合及Jenkins的使用_第63张图片
    (2)系统全局插件配置(依次单击主页面的”系统管理”–>”全局工具配置”面板,进入全局插件配置页面,配置插件效果如下)
    微服务整合及Jenkins的使用_第64张图片
    微服务整合及Jenkins的使用_第65张图片
    微服务整合及Jenkins的使用_第66张图片
    点击”保存”按钮跳转到主页面,至此,Jenkins插件配置完成。
  4. 服务自动化配置
  1. 构建新任务
    微服务整合及Jenkins的使用_第67张图片
    微服务整合及Jenkins的使用_第68张图片
    微服务整合及Jenkins的使用_第69张图片
    (1)配置源码仓库地址
    微服务整合及Jenkins的使用_第70张图片
    微服务整合及Jenkins的使用_第71张图片
    (2)构建触发器
    微服务整合及Jenkins的使用_第72张图片
    (3)服务发布配置(在Post Steps页面,选择”Add post-build step”下拉列表中的”Execute shell” 选项,并在命令框中输入需要发布的shell指令。为了确保集群环境下服务的正常部署,需要确认集群已经开启并且已经预先自定义好指定网段的网络,同时还要在集群管理节点进行私有仓库登录认证;上述配置完毕后,单击左下角”保存”按钮跳转到该任务主页面)
    微服务整合及Jenkins的使用_第73张图片
    微服务整合及Jenkins的使用_第74张图片

  2. 自动化部署服务
    (1)单击任务主界面左侧的”立即构建”按钮后,会触发一次立即构建项目的动作,然后整个服务就会进入自动构建过程。
    微服务整合及Jenkins的使用_第75张图片
    (2)单击”构建历史”中的倒三角,选择”控制台输出”选项查看整个构建过程的输出信息
    微服务整合及Jenkins的使用_第76张图片
    微服务整合及Jenkins的使用_第77张图片
    (3)测试
    微服务整合及Jenkins的使用_第78张图片

实验过程中遇到的错误:
(一) Maven install失败
微服务整合及Jenkins的使用_第79张图片
解决方法:将原程序Maven Plugin的版本1.3.6改为1.4.9
在这里插入图片描述
(二)执行java –jar Jenkins.war –httpport=49001失败
微服务整合及Jenkins的使用_第80张图片
解决方法:在/etc/hosts里面加入集群中三台主机的主机名和IP地址使之映射
微服务整合及Jenkins的使用_第81张图片
(三)源码管理输入git地址报错(在该地址后需要加.git,这里因为上一次试过还是同样的错所以在截图中没有.git后缀)
微服务整合及Jenkins的使用_第82张图片
解决方法:在集群主节点安装git
微服务整合及Jenkins的使用_第83张图片
在这里插入图片描述
微服务整合及Jenkins的使用_第84张图片
(4)登录私有仓库失败
在这里插入图片描述
解决方法:杀掉之前的registry进程重新启动registry。
在这里插入图片描述

如何将本地文件Push到GitHub上???

  1. 方案1(这应该算是最简单的一种)
    微服务整合及Jenkins的使用_第85张图片
    微服务整合及Jenkins的使用_第86张图片
    微服务整合及Jenkins的使用_第87张图片
    微服务整合及Jenkins的使用_第88张图片
    微服务整合及Jenkins的使用_第89张图片
    微服务整合及Jenkins的使用_第90张图片
    微服务整合及Jenkins的使用_第91张图片
    微服务整合及Jenkins的使用_第92张图片
    微服务整合及Jenkins的使用_第93张图片

  2. 方案2–>安装客户端Push
    a) 安装这两个软件
    在这里插入图片描述
    b)进入项目所在目录,右键选择”Git Bash Here”
    微服务整合及Jenkins的使用_第94张图片
    c)执行clone命令,生成一个名为microservice-mallmanagement的空文件夹
    微服务整合及Jenkins的使用_第95张图片
    d)将项目中其余文件拉至该文件夹中
    微服务整合及Jenkins的使用_第96张图片
    e)执行命令添加文件
    微服务整合及Jenkins的使用_第97张图片
    微服务整合及Jenkins的使用_第98张图片
    f)推送到GitHub
    微服务整合及Jenkins的使用_第99张图片
    微服务整合及Jenkins的使用_第100张图片
    g)登录验证
    微服务整合及Jenkins的使用_第101张图片

是不是很有趣呢,快来尝试学习学习吧!!!

你可能感兴趣的:(微服务架构)