文章目录
#学习要求
#任务一:Docker Compose编排工具
#任务二:微服务与Docker的整合
#任务三:环境搭建及镜像准备
#任务四:微服务的手动部署
#任务五:使用Jenkins自动部署微服务
#遇到的问题及解决方案
1.掌握Docke Compose编排工具的使用
2.掌握微服务项目于Docker的整合方式
3.掌握微服务项目的部署方式
项目整体结构:
项目概述:
本项目通过一个名为microservice_ mallmanagement的Maven父项目构建了四个子项目。
microservice eureka-server:用于服务注册发现。
microservice-gateway-zuul: 用于API网关。
microservice-orderservice: 用于订单管理服务。
microservice-userservice: 用于用户管理服务。
其中的microservice- orderservice和microservice-userservice就是实际需要开发的微服务项目,也是商城管理项目的核心;而另外的microservice eureka-server和microservice-gateway-zuul子项目则属于辅助服务。
任务一:Docker Compose编排工具
Docker Compose,俗称Docker编排 工具,是用来定义和运行多容器应用的Docker工具。通过该编排工具,可以使用yml (或yaml) 文件来配置应用程序服务,然后只需要一-条简单的服务部署指令就可以从配置中创建并启动所有服务。
1.docker compose的安装于卸载
安装条件:已安装docker
2.使用命令安装compose
安装完成
3.更改docker compose的可执行文件权限,验证安装版本信息
安装完成
任务二:微服务与Docker的整合
1.添加docke file文件,具体信息如下
2.添加dockerfile-maven 插件,分别添加在每个子项目模块中
microservice-userservice:
Microservice-orderservice:
microservice eureka-server:
microservice-gateway-zuul:
3.添加docker-compose.yml编排文件
任务三:环境搭建及镜像准备
1.搭建本地私有仓库,仓库服务地址为192.168.1.136:5000
2.下载安装应用编译工具JDK
3.自定义文件目录,解压软件包
4.配置环境变量,使用source /etc/profile命令使其生效
5.安装打包工具maven,下载解压
6.查看解压好的安装包
7.配置环境变量
8.验证是否安装配置成功
9.镜像准备
配置服务认证信息,修改本地私有仓库地址及登录认证用户
10.进行打包,构建推送镜像
验证生成的镜像
在本地仓库中查看
任务四:微服务的手动部署
步骤一:非集群环境下的部署
此次部署的微服务所需的镜像都存放在本地私有镜像仓库,并且本地私有仓库配置有用户认证,所以想要通过本地私有仓库的镜像部署服务,就必须先登录认证,获取镜像的使用权限(DockerHub远程仓库镜像则不需要登录认证)。
1.登录私有仓库
2.部署服务
打印处启动信息
查看项目启动情况
3.在注册中心查看服务详情
步骤二:集群环境下部署服务
在集群环境下部署服务需要将之前准备的另外两个工作节点worker1和worker2机器全部启动,并且一定要确保manager1、worker1 和worker2都已加入同-一个集群中,同时manager1、worker1和worker2中都已添加了本地私有仓库的服务地址。
1.查看网络列表详情
2.自定义以overlay为驱动的网络,指定子网地址以10.0开头
3.在配置文件中添加服务信息
4.修改编排文件信息,将所有服务启动时的网络设置为自定义网络进行网络管理
5.集群服务部署
登录私有仓库
6.部署服务
7.查看服务列表详情
8.查看整个微服务在集群节点上的分配和启动情况
9.查看某个具体服务从启动到运行的整个日志详情
10.微服务测试
通过visualizer集群服务可视化工具查看服务启动情况
通过Eureka服务注册中心查看服务启动情况
11.将数据库数据初始化
安装mysql可视化工具
12.创建数据表,准备测试数据
13.测试微服务
访问http://192.168.1.136:8030/swagger-ui.html
访问http://192.168.1.136:7900/swagger-ui.html
14.测试验证API网关服务
访问http://192.168.1.136:8050/order-service/order/findOrders/1
访问http://192.168.1.136:8050/user-service/user/findOrders/shitou
任务五:使用Jenkins自动部署微服务
介绍: Jenkins是一个基于Java开发的开源软件项目,用于支持构建、部署和自动化任何项目。在实际开发中,通常将它作为项目的持续集成、部署工具来使用。其使用场景可以通过-张图来表达:
Jenkins进行项目集成管理的流程:
(1)开发人员将更改后的代码提交到代码仓库中(如GitHub);
(2)持续集成工具Jenkins会定期(或人工手动)从代码仓库拉取指定项目;
(3) Jenkins工具会根据具体配置,自动化打包、构建镜像、推送镜像并最终生成Docker容器来启动服务,形成对应的测试环境;
(4)测试人员会在对应的测试环境下测试Jenkins自动化集成、部署的服务:
(5)当项目测试成功后,可以使用Jenkins工具将测试成功的项目自动构建到发布环境下,也可以人工手动部署到发布环境下。
步骤一:Jenkins的安装
1.下载Jenkins,上传至管理节点的某个目录
2.更改端口,并启动服务
3.Jenkins初始化安装,初始化认证密码,输入指定密码,单击继续
4.初始化插件安装
5.选择安装推荐的插件进行安装
6.创建管理员用户,输入管理员信息
7.编辑好管理员信息之后,保存修改,进入Jenkins主界面
步骤二:Jenkins集成插件配置
1.安装maven插件,依次单击系统管理–插件管理
2.系统全局插件配置
jdk配置
Maven配置
Docker配置
步骤三:eclipse上传项目到git
准备工作1.在github官网注册账号
2.eclips中安装git插件
1.在eclipse中配置user的相关信息
window->preferences->Team->Git->Configuration->UserSettings
点击AddEntry
3.根据提示填写用户信息
4.填写完点击OK,再次点击AddEntry,填写邮箱地址
5.添加完地址后Apply ->OK
7.使用git插件为项目创建本地仓库
右击要上传的项目->Team->Share Project…->Git
8.向本地仓库提交项目,填写 Commit信息
右击项目->Team->Commit
提交完之后就会看到项目中出现小黄桶的标识,则说明将项目推送到本地仓库
9.在github网站中新建一个仓库
10.右击项目->Team->remote->push
11.将本地仓库项目内容推送到远程仓库(github)
右击项目->Team->remote->push
12.选择master项,点击finish
13.登录到github,查看推送的项目
步骤四:服务自动化部署
1.构建新任务
2.点击确定则会跳转到配置界面,点击源码配置,添加源码仓库地址
3.构建触发器
4.服务发布配置,设置集群环境下服务部署命令,配置完成之后,点击保存,完成配置
5.完成保存之后就会跳转到任务主页,单击任务主界面左侧的立即构建,会触发一次构建项目的动作,然后整个服务就会进入自动部署过程
项目部署过程
单击构建历史的倒三角,选择控制台输出来查看构建过程中的输出信息
构建成功
在Jenkins服务端查看输出日志信息
点击构建历史查看构建信息
7.项目测试,按照之前手动部署项目后的测试方法,进行项目测试
测试微服务
访问http://192.168.1.136:8030/swagger-ui.html
访问http://192.168.1.136:7900/swagger-ui.html
8.测试验证API网关服务
访问http://192.168.1.136:8050/order-service/order/findOrders/1
访问http://192.168.1.136:8050/user-service/user/findOrders/shitou
至此首次微服务项目与docker的集成与部署完成
遇到的问题及解决方案
问题一:使用命令安装compose编排工具时出错
解决方案:检测到系统中未安装curl,所以首先安装curl,然后安装命令,compose成功安装
问题二:Jenkins自动部署时,自动安装maven插件出错
解决方案:手动下载maven插件,选择上传
上传之后发现依然安装报错,是由于缺少依赖,缺少javadoc插件依赖
解决方案:用同样的方法上传安装javadoc插件,然后安装maven插件,安装成功
在已安装的插件信息中可以查看到安装的插件及其版本信息
问题三:在Jensins自动化部署,配置源码仓库地址时报错
问题分析:连接不到远程仓库地址,是因为运行主机上没有安装git
解决方案:
1.在管理节点上安装git
2.查看git安装位置
3.在Jenkins的全局配置中添加git配置
4.保存配置之后重启Jensins,可以看到无报错信息
问题五:自动化部署完成之后,选择立即构建,构建失败
解决方案:
1.查看控制台报错信息可以发现是由于git配置有问题,根据网上查阅资料可以发现是由于没有安装git或者没有配置,但可以确定都已经配置完成,同时也重启了Jensins服务,依然报错,刷新构建了很多次也没用,最终重启整个集群之后,重新构建,错误消失
2.此刻终于可以看到已经连接到远程仓库代码,可以部署服务了
3.但是又出现了新的错误
4.查看报错日志信息后发现和Maven配置有关,应该是与Jenkins安装的maven插件有关
解决方案:更新之前安装的低版本Maven插件,重新构建
同时保证manage管理节点的内存足够大,这里设置为6G,经历过各种波折,最终自动部署成功