Kubernetes+Docker+SVN+Jenkins+Maven DevOps

《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 流程图

随着分布式开发和微服务的大量引进,应用测试、发布到上线成为了项目的一大痛点,我们不得不考虑自动化平台的搭建既使用。通过查找相关文档,得到证实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`

《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 报错一

《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 报错二

修改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全局工具设置:
系统管理->全局工具配置

《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 four.png
《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 five.png

新建maven项目并配置

《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 six.png
《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 siven.png
《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 eight.png
《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 nine.png
《Kubernetes+Docker+SVN+Jenkins+Maven DevOps》 ten.png

至此,一键部署应用到kubernetes集群就完成了!

    原文作者:zoluo
    原文地址: https://www.jianshu.com/p/08e8c4e69cc6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞