3、动态的在k8s中去创建slave-pod
pipeline {
agent {
kubernetes {
label "jenkins-slave" 指定标签
yaml """
kind: Pod
metadata:
name: jenkins-slave 指定pod的名字
spec:
containers:
name: jnlp 默认使用jnlp
image: "${registry}/library/jenkins-slave-jdk:1.8" 使用我们封装好的slave的镜像
imagePullPolicy: Always 镜像拉取策略,始终拉取镜像仓库的镜像
volumeMounts: 挂载的数据卷,我们在构建jenkins-slave镜像的时候,docker需要数据卷挂载
name: docker-cmd 也就是docker in docker
mountPath: /usr/bin/docker
name: docker-sock
mountPath: /var/run/docker.sock
name: maven-cache 主要是将容器中maven拉取依赖包的缓存挂载到宿主机的/tmp/m2下,一旦宿主机都具备这个缓存的话,
mountPath: /root/.m2 那么以后构建都会先读取缓存,或者也就是可以将这些包放到共享存储里面pvc中去读取,可以在这个yaml
volumes: 中去定义也都可以
name: docker-cmd
hostPath:
path: /usr/bin/docker 将宿主机上的/var/bin/docker和/var/run/docker.sock 挂载到容器中的目录mountpath:对应目录中
name: docker-sock 这样容器就可以使用docker命令了,
hostPath:
path: /var/run/docker.sock
name: maven-cache
hostPath:
path: /tmp/m2
"""
}