微服务的部署

一:Docker Compose编排工具

1.1:Docker Compose的安装与卸载

了解了Docker Compose编排工具的概念和作用后,对安装和卸载进行讲解


1:安装条件
Docker Compose是依赖于Docker引擎的,所以在安装Docker Compose之前确保机器安装了Docker(可以使用docker -v指令查看)
2:安装Compose
(1):使用curl命令从GitHub的Compose仓库拉取Docker Compose,具体操作指令如下:
在这里插入图片描述
(2):更改Docker Compose的可执行文件权限,具体操作指令如下:
(3):查看安装的Docker Compose效果及版本,具体操作指令
在这里插入图片描述
3:卸载Compose
按照上述步骤使用curl安装Docker Compose,可以使用rm 指令来卸载
在这里插入图片描述

1.2:Compose file文件的使用说明

Docker Compose编排工具的使用非常简单,只需要如下 三步
(1):编写Dockerfile文件。使用Dockerfile定义应用程序的环境,这样可以在任何地方使用它,Dockerfile的作用就是为每个服务构建镜像
(2):定义yml文件。就是将前面介绍的服务部署指令及相关参数都统一在该文件中编写和配置,这样就省去了针对不同服务各自运行的麻烦
(3):运行服务部署命令。根据具体的部署要求,来执行相应的部署命令
这里通过一个Compose file文件的实例来展示说明
在这里插入图片描述在这里插入图片描述在这里插入图片描述

二:微服务与Docker的整合

1:添加Dockerfile文件
在这里插入图片描述在这里插入图片描述
2:添加Dockerfile-maven插件

三:环境 搭建以及镜像准备

3.1:搭建环境

1:安装应用编译工具JDK

在使用mvn install命令过程中,需要使用JDK进行编译打包,所以这里需要预先安装配置好JDK环境。具体的而配置过程如下:
(1):下载Linux版本的JDK工具包,本书使用的是jdk-8u144-linux-x64.tar.gz版本,并在Linux机器上使用tar命令进行解压
在这里插入图片描述在这里插入图片描述
(2):将执行上述解压指令后产生的解压包移动到自定义目录下
在这里插入图片描述
(3):配置JDK环境变量。修改/etc/profile文件,在profile文件中添加以下 配置
在这里插入图片描述

(4):完成JDK的环境配置后,可以执行source /etc/profile指令使配置立即生效
在这里插入图片描述

2:安装应用打包工具Maven
(1):下载Linux版本的Maven工具包,本书使用的是apache-maven-3.5.0-bin.tar.gz版本,并在Linux机器上使用tar命令进行解压
在这里插入图片描述
(2):将执行上述解压命令后产生的解压包移动到自定义目录下
在这里插入图片描述
(3):配置Maven环境变量,修改/etc/profile文件,在profile文件中添加以下配置
在这里插入图片描述

(4):完成Maven的环境变量后,同样可以执行source /etc/profile文件使配置立即生效
在这里插入图片描述

3.2:镜像准备

在使用mvn install命令打包之前,除了需要预先在dockerfile-maven插件配置中配置标签值为true外,还需要在Maven的settings.xml配置文件
在这里插入图片描述

配置完成后就可以将微服务项目microservice-mallmanagement复制到manager1服务主机的某个工作目录下,并进入到该项目的pom文件所在的位置(最外层的pom文件目录),然后使用mvn install指令进行打包
在这里插入图片描述在这里插入图片描述

四:微服务的手动部署

4.1 非集群环境下的服务部署

1:登录私有仓库
由于此次部署的微服务所需的镜像都存放在本地私有镜像仓库,并且本地私有仓库配置有用户认证,所以想要通过本地私有仓库的镜像部署服务,就必须先登录认证,获取镜像的使用权限(Docker Hub远程仓库镜像则不需要登录认证)
在这里插入图片描述

2:部署服务
进入到项目docker-compose.yml文件所在目录下,执行服务部署指令来部署整个微服务项目
在这里插入图片描述

当服务部署完成后,可以通过docker ps指令查看服务是否都正常运行
在这里插入图片描述

当不在需要服务时,可以在项目microservice-compose.yml文件所在同级目录下使用结束指令结束整个服务
#docker-compose down

4.2 集群环境下服务部署

1:集群服务中的网卡选择性注册
正式在Docker Swarm集群环境下部署服务之前,还需要先来查看一个问题。在集群管理节点manager1上使用docker network ls指令查看集群搭建后的网络列表详情
在这里插入图片描述

我们需要将自定义一个以overlay为驱动的网络进行本地服务网络管理
在这里插入图片描述
执行上述指令后,会创建一个 以overlay为驱动,名为microservice-net网络,并且 通过–subnet参数指定该自定义网络的子网地址为10.0开头
(2):在所有需要注册到Eureka注册中心得服务的配置文件application.yml中,添加指定注册到Eureka中心的优选服务子网地址信息

在这里插入图片描述

(3):修改服务部署的编排文件docker-compose.yml,将所有服务启动时的网络设置为前面预先自定义的microservice_net网络来进行网络管理,将修改后编排文件重命名为docker-compose-swarm.yml
在这里插入图片描述在这里插入图片描述在这里插入图片描述
2:集群服务部署
(1):登录私有仓库
同4.1小节中非集群环境下的服务部署一样,此次进行集群环境下微服务部署时也必须先登录本地私有镜像仓库,进行登录认证,获取镜像的使用权限
(2):部署服务
进入微服务项目中docker-compose-swarm.yml文件所在目录下,使用docker stack deploy部署服务
在这里插入图片描述
启动完成后,可以在集群管理节点上使用docker service ls指令查看服务列表详情
在这里插入图片描述
可以 在集群管理节点上,使用docker stack的相关指令查看整个微服务项目在集群节点的分配和启动情况
在这里插入图片描述
可以在集群管理节点上通过Docker service提供的服务日志指令来进一步查看某个具体服务从启动到运行的整个日志情况

在这里插入图片描述

4.3:微服务测试

通过visualizer集群服务可视化工具查看服务启动情况。微服务项目部署成功后,可以通过地址http://192.168.197.143:8081/查看集群服务可视化工具visualizer界面的情况

在这里插入图片描述
(2):通过Eureka注册中心查看服务的启动情况。我们还可以通过地址http://192.168.197.143:8761访问Eureka服务注册中心的情况,查看其它微服务是否都已经启动并注册到该注册中心
在这里插入图片描述
(3):将数据库数据初始化。本书中mysql数据库是使用Docker容器构建的,所以对Mysql数据库进行初始化时需要先安装一个Mysql客户端
在这里插入图片描述
执行上述指令后,就会在当前机器上安装一个版本为5.7的Mysql客户端,通过该客户端就可以连接刚才启动的Mysql数据库服务上并参考第9章对数据库mallmanagement中的表进行初始化
(4):测试验证API网关服务
在这里插入图片描述在这里插入图片描述

五:使用Jenkins自动部署服务

5.1 Jenkins安装

1:下载 Jenkins
在浏览器输入jenkins官网地址https://jenkins.io/download/访问其下载页面,选中页面中Long-term Support版本最下方的Generic java package(.war),进行Jenkins的war包下载
在这里插入图片描述

2:启动Jenkins服务
将下载好的jenkins.war放在manager1机器中的某个目录下,直接使用如下命令即可启动
在这里插入图片描述
3:Jenkins初始化安装
通过浏览器访问地址http://192.168.197.143:49001就可以正式访问Jenkins服务,在首次安装访问Jenkins时,会涉及Jenkins的初始化安装
(1):初始化认证密码
在这里插入图片描述
查看密码
在这里插入图片描述
(2):初始化安装插件

在这里插入图片描述(3):创建管理员用户
在这里插入图片描述

5.2 Jekins集成插件配置

1:安装Maven插件系统管理->插件管理->可选插件

在这里插入图片描述在这里插入图片描述
2:系统全局设置插件
在这里插入图片描述在这里插入图片描述在这里插入图片描述

5.3 服务自动化部署

完成Jenkins的安装配置后。就可以使用Jenkins工具类自动化集成,部署微服务项目了
1:构建新任务
在Jenkins主页面,单击左侧的“新建”按钮,将会跳转到任务构建界面
在这里插入图片描述在这里插入图片描述在这里插入图片描述

(1):配置源码仓库地址
使用Jenkins自动构建任务,就需要从源码仓库自动拉取此次构建任务的项目源码。在源码管理中选择中选择Git,并在“Repository URL”中输入该项目所在的GitHub源码地址
在这里插入图片描述

(2):构建触发器
构建触发器就是构建任务时的触发规则,用来规定什么时候触发任务的平构建
在这里插入图片描述
(3):服务发布配置
为了确保集群环境下服务的正常部署,需要确认集群已经开启并且预先自定义好指定网络的网络,同时还要在集群管理节点进行私有仓库登录认证
在这里插入图片描述
完成上述所有步骤的配置后,单击左下角的“保存”按钮就会跳转到该任务主页面,效果如下

在这里插入图片描述

2:自动化部署服务

为了演示Jenkins自动构建,部署服务的效果,单击任务主界面左侧的立即构建按钮后,会触发一次立即构建项目的动作,然后整个服务就会进入自动构建的过程。此时可以单击构建历史中的倒三角,选择Console Output选项来查看整个构建过程的输出信息

在这里插入图片描述
选择进入任务对应的Console Output输出信息界面后
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

六:出现的问题与解决方案

1:安装Comose时在使用curl命令从GitHub的Compose仓库拉取Docker Compose出现以下问题

在这里插入图片描述
解决方案:安装curl(apt insatll curl)以及保证命令的正确输入即可安装l拉取
2:在配置JDK环境时出现以下问题

在这里插入图片描述
解决方案:
“etc/profile” E212: Can’t open file for writing
这是安装到本地JDK路径不正确导致。那就设置路径。
输入这条指令 sudo vim etc/profile 会报错,权限不够,那我们找他领导解决:
sudo vi hosts   再次编辑即可,可能会用到的指令
3:执行mvn install时出现以下错误

在这里插入图片描述
解决方案:拉取失败错误原因显示认证有效期不正确
由于在第7章搭建的本地私有仓库和本章的不一致,所以重新搭建本地私有仓库(参考7.4.3)
4:通过客户端连接mysql时报错

在这里插入图片描述
解决方案:使用docker-compose down结束整个服务,重新部署服务保证启动完全
5:在Jenkins系统全局插件配置时添加maven_Home出现以下错误

在这里插入图片描述
解决方案:
是由于添加的/opt/apache-maven没有权限导致,所以重新安装maven将其安装在/usr/local以及修改/etc/profile下的maven_home,另外更改了maven目录一定要保证添加其认证信息在settings.xml,否则在构建时会出现没有本地认证错误
6:在Jenkins中构建项目时出现以下错误

在这里插入图片描述
解决方案:由于是在配置源码仓库地址时填写的地址不是个人地址项目所构建的地址导致拉取失败。
Eclipse与GitHub的整合——本地Git仓库中的代码push至GitHub
参考(https://blog.csdn.net/wsad578169903/article/details/80518387)

7:在Push过程中出现以下错误
在这里插入图片描述解决方案:
Windows > Preferences > Team > Git > Configuration > User Settings,点击Add Entry,添加一个键值对:http.sslVerify=false(如下图)
在这里插入图片描述
8:将配置填入后出现以下错误

在这里插入图片描述
解决方案:安装git,正确写入git地址(例如全局工具中jdk形式)
在这里插入图片描述

七:总结

本章主要讲解了有关微服务部署的相关知识,其中涉及Docker Compose编排工具,微服务与Docker的整合,微服务手动部署,以及使用Jenkins完成微服务的自动化部署等。通过本章的学习,读者可以掌握微服务与Docker的整合方式,同时能够掌握如何使用Jenkins完成微服务项目的自动化集成,部署。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值