先安装jenkins插件,对应的源码地址是kubernetes-plugin,以供参考。
进入节点管理,开始配置。
点击 “ configure clouds”
一、配置集群
-
填写k8s地址:https://kubernetes.default.svc.cluster.local
-
命名空间:kubernetes-plugin
-
Jenkins地址:http://jenkins:18080
-
Jenkins通道:jenkins:50000
jenkins是容器别名
- 设置jenkins=slave的标签属性
二、pod template
- 名称:jnlp-maven
- 命名空间:kubernetes-plugin
2.1、 容器列表
可以填写多个容器,除了基本的jnlp容器外,这里根据不同的job,配置了不同的容器列表。
均需分配伪终端,不同的是jnlp容器不要填写运行的命令。
jnlp容器
- 镜像地址是192.168.5.6:8086/library/jnlp-slave:alpine
- 工作目录是/home/jenkins/agent
如果是jdk11版本,添加环境变量,如下:
JAVA_OPTS: -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=86400
maven容器
- 镜像地址是192.168.5.6:8086/library/maven-gradle-jdk8:202112010901
如果是jdk11版本,镜像地址则是harbor.xh.cloud/library/maven-gradle-jdk11:202112280532 - 工作目录是/home/jenkins/agent
docker容器
官方容器是Docker in Docker(DinD)
- 镜像地址是192.168.5.6:8086/library/docker:dind
- 工作目录是/home/jenkins/agent
2.2、环境变量
- TZ:Asia/Shanghai
- file.encoding:UTF-8
- sun.jnu.encoding:UTF-8
- LANG:zh_CN.UTF-8
- DEFAULT_TINKER_PATCH_BAK_APK_ROOT_DIR:/opt/.m2/android-config/apk (只有android项目打包用到)
2.3、卷volume
- mvn-repo-pvc: /opt/.m2
- /var/run/docker.sock: /var/run/docker.sock
/var/run/docker.sock的映射是dind容器所需。
2.4、其他配置
- Pod Retention: Default,默认即可。
- image pull secret: regcred
- node-role.kubernetes.io/worker=worker,让jenkins slave运行在k8s集群的worker节点,否则可能运行在K8S的master节点。
三、php语言环境
3.1、composer
192.168.5.6:8086/library/xh-composer:2.0.14
3.2、jnlp
略
四、测试覆盖率
4.1、diff-cover
192.168.5.6:8086/library/diff-cover:20220817093510
4.2、maven容器
192.168.5.6:8086/library/maven-gradle-jdk8:202208220814
4.3、jnlp
略
五、H5语言环境
5.1、nodejs16
192.168.5.6:8086/library/vue-cli:3.3.0_build202408191633
环境变量NODE_TLS_REJECT_UNAUTHORIZED:0
5.2、nodejs18
192.168.5.6:8086/library/vue-cli:3.3.0_build202403191444
5.3、docker容器
同上,还需要配置volume卷。
5.4、jnlp容器
略