文章目录
-
- 前言
- 部署jenkins
- Jenkins默认插件及git、镜像仓库、k8s凭证配置
-
- [host key verification configuration修改为不验证](#host key verification configuration修改为不验证)
- [Gitee ssh](#Gitee ssh)
- 阿里云镜像仓库ssh
- 编写pipeline安装以下常用插件
- 将kubectl命令文件拷贝到jenkins容器
- 将k8s集群配置文件拷贝到jenkins
- 准备java示例工程
- [配置jenkins pipeline任务](#配置jenkins pipeline任务)
- 设置gitee自动触发jenkins
-
- 插件确认
- [查看jenkins webhook调用路径并生成密匙](#查看jenkins webhook调用路径并生成密匙)
- gitee配置webhook
前言
在前面的kubernetes系列博文中我们分享了从创建kubernetes集群到各种中间件的安装,以及从springboot项目的容器化部署到kubernetes外网映射,基本上包含了从0到1的K8S基础实战的整个过程。今天我们再分享一期采用jenkins pipeline实现自动构建并部署至k8s的实战演示,各位大大敬请鉴赏。
本文中采用jenkins pipeline执行整个jenkins的构建过程,在pipeline中使用docker执行maven构建。构建后通过dockerfile将jar包构建为docker镜像,并上传到阿里云仓库。然后执行deployment部署到k8s集群。
部署jenkins
这里采用docker的方式部署jenkins。
编写docker-compose-jenkins.yaml
root@master app\]# mkdir -p jenkins/jenkins_home
\[root@master app\]# mkdir -p jenkins/jenkins_config
\[root@master app\]# vim docker-compose-jenkins.yaml
```java
version: '3'
services:
jenkins:
image: registry.cn-hangzhou.aliyuncs.com/senfel/jenkins:2.346.3-2-centos7-jdk8
container_name: jenkins
restart: unless-stopped #指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
volumes:
- "/usr/bin/docker:/usr/bin/docker"
- "/var/run/docker.sock:/var/run/docker.sock"
- "/usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7"
- "./jenkins/jenkins_home:/var/jenkins_home"
- "./jenkins/jenkins_config:/var/jenkins_config"
environment:
TZ: Asia/Shanghai
LANG: en_US.UTF-8
JAVA_OPTS: '-Xmx2048M -Xms2048M -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MaxNewSize=128m -Djava.util.logging.config.file=/var/jenkins_home/log.properties -Duser.timezone=Asia/Shanghai'
user: root
ports:
- "10000:8080"
```
#### 配置maven源
创建maven配置文件目录
\[root@master app\]# mkdir -p jenkins/jenkins_home/appconfig/maven
新增settings.xml
\[root@master app\]# vim jenkins/jenkins_home/appconfig/maven/settings.xml
```java