本文的目的是通过在 Kubernetes 集群上创建并配置 Jenkins Server ,实现应用开发管理的 CI/CD 流程,并且利用 Kubernetes-Jenkins-Plugin 实现动态的按需扩展 jenkins-slave。
安装
本文所需代码在这里
推送 Jenkins Master Docker 镜像到 Harbor
1 | $ cd master |
推送 Jenkins Slave Docker 镜像到 Harbor
1 | $ cd slave |
安装 Jenkins
1 | $ kubectl apply -f https://raw.githubusercontent.com/batizhao/dockerfile/master/k8s/jenkins/service-account.yml |
Kubernetes 插件
安装
略过。
配置
系统管理 - 系统设置 - 云 - Kubernetes
1 | Name: kubernetes |
如果 service account 没有问题,点击 test,应该可以看到 Connection test successful。
系统管理 - 系统设置 - 云 - Kubernetes - Add Pod Template1
2
3
4
5
6
7
8
9
10
11images - Add Pod Template:
Name: jnlp-slave
Labels: jnlp-slave
Containers:
Name: jnlp
Docker image: 172.31.21.226/ideal/jnlp-slave:latest
Always pull image: yes
Jenkins slave root directory: /home/jenkins
Host path: /var/run/docker.sock
Mount path: /var/run/docker.sock
Jenkins Job
非 pipeline 方式
pipeline 方式
直接实现 groovy 脚本,可以放到 git 中管理。
1 | podTemplate(label: 'jnlp-slave') { |
这里指定 jenkins slave 为插件中配置的 jnlp-slave。