Jenkins构建Java应用至k8s
前言(本文需要对Jenkins和gitlab有一定的使用经验,只是描述了主要步骤。。)
本文中构建部署过程大致分为jenkins获取gitlab上的代码,在docker中执行代码编译、构建docker镜像、上传docker镜像至镜像仓库、执行kubectl命令部署至k8s。(自动触发构建的话,可以自行搜索gitlab通过webhook自动触发jenkins执行任务,这里不在概述)
Jenkins+GItlab部署
Jenkins下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.277.4/jenkins.war
tomcat下载地址:https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.tar.gz
在tomcat安装目录下的webapps,把下载好的jenkins.war放进去,启动tomcat就行
gitlab通过yum方式安装:
在/etc/yum.repos.d/gitlab-ce.repo中配置gitlab镜像源:
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1
执行yum install -y gitlab-ce
安装完成后需要修改/etc/gitlab/gitlab.rb中的配置文件:

需要把external_url 换成自己的ip地址地址

如果机器配置不高,可以把一些不用的功能给禁用,默认都是开启的,比如prometheus,其他功能禁用方法一样。
修改完gitlab配置都需要先执行gitlab-ctl reconfigure,然后执行gitlab-ctl restart
操作步骤:
1、首先把Jenkins服务器的公钥地址配置到gitlab上面,方便Jenkins拉取代

随便找个Java项目地址:https://github.com/gongchangwangpi/spring-cloud-demo2进行测试
克隆项目地址到本地gitlab,删除其他无用的spring cloud项目,只保留spring-cloud-eureka项目,最终如下图所示:

根目录创建Dockerfile,用来构建docker镜像,Dockerfile内容:
FROM registry.cn-beijing.aliyuncs.com/citools/maven:3.5.3 COPY spring-cloud-eureka/target/*.jar /opt
EXPOSE 8080