先安装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容器
略
