作者:aiminilee | 来源:互联网 | 2023-08-22 14:07
流程图随着分布式开发和微服务的大量引进,应用测试、发布到上线成为了项目的一大痛点,我们不得不考虑自动化平台的搭建既使用。通过查找相关文档,得到证实DevOps(Developmen
流程图
随着分布式开发和微服务的大量引进,应用测试、发布到上线成为了项目的一大痛点,我们不得不考虑自动化平台的搭建既使用。通过查找相关文档,得到证实DevOps(Development和Operations的组合词)是目前最好的实践方式,对CI/CD的诠释也相对完整。下图直观表现了一体化思维,从项目源码到应用上线部署只需一个按钮搞定,本文是由自己搭建所有组件并成功演示了一键打包部署(项目打包、镜像生成、服务编排).
流程结构流程说明:
1、用户向Gitlab或SVN提交代码,代码中包含Dockerfile文件;
2、Jenkins监听代码库的推送和变更事件;
3、Jenkins调用Maven插件对源码进行编译打包;
4、Jenkins调用docker工具根据Dockerfile文件生成镜像,并推送镜像至Harbor仓库;
5、Jenkins通过SSH远程调用Kubernetes集群的Master节点,更新Pod的的模板yaml文件,调用kubectl命令进行发布操作;
6、Kubernetes集群的Node节点从Harbor仓库拉取镜像,启动Pod和应用容器。
实施步骤
kubernets测试机或高可用集群环境搭建 已完成
docker harbor私有仓库搭建 已完成
kubernets+harbor+docker+svn+Jenkins+maven代码持续集成与自动部署
jdk和maven安装
# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local
# tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
配置环境变量:
#set java enviroment
JAVA_HOME=/usr/local/jdk1.8.0_152
JRE_HOME=/usr/local/jdk1.8.0_152/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
#set maven enviroment
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH
验证:
# java -version
# mvn -v
SVN使用公司的
Jenkins安装
# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# wget -q -O - http://pkg.jenkins.io/debian-stable/jenkins.io.key
# sh -'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# yum install jenkins
# service jenkins restart
# systemctl status jenkins.service
# systemctl daemon-reload
# service jenkins restart
注意报错:Starting Jenkins bash: /usr/bin/java: No such file or directory
# vim /etc/init.d/jenkins`
报错一
报错二
修改java路径为自己安装的路径:/usr/local/jdk1.8.0_152/bin/java
Jenkins默认设置:
日志路径:/var/log/jenkins/jenkins.log
配置文件:/etc/sysconfig/jenkins
默认启用8080端口
Jenkins权限变更:
由于Jenkins需要执行shell脚本,为后续操作方便给Jenkins一个root权限
1、vim /etc/sysconfig/jenkins JENKINS_USER 改为root
2、更改相关目录权限
chown –R root:root /var/lib/jenkins
chown –R root:root /var/cache/jenkins
chown –R root:root /var/log/jenkins
3、重启Jenkins
service jenkins restart
需要/var/lib/jenkins/secrets/initialAdminPassword的密码解锁Jenkins
Jenkins邮件通知设置参照:
插件安装选择默认建议安装,额外插件: Publish Over SSH、 docker-build-step、 Maven Integration plugin、 SSH Slaves plugin
Jenkins全局工具设置:
系统管理->全局工具配置
four.png
five.png
新建maven项目并配置
six.png
siven.png
eight.png
nine.png
ten.png
至此,一键部署应用到kubernetes集群就完成了!