尝试下K8s + jenkins的组合,非常方便。在这里记录一下:

kubernetes版本:

1.10 +

deployment.yaml

apiVersion: v1
kind: Service
metadata:
name: jenkins
labels:
app: jenkins
spec:
type: NodePort
ports:
- port: 8080
name: jenkins-web
- port: 8081
name: jnlp
selector:
app: jenkins
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: jenkins
spec:
serviceName: "jenkins"
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: nginx
image: jenkins/jenkins:lts-alpine
ports:
- containerPort: 8080
name: jenkins-web
- containerPort: 8081
name: jenkins-jnlp
volumeMounts:
- name: jenkins-data
mountPath: /var/jenkins_home
volumeClaimTemplates:
- metadata:
name: jenkins-data
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi`
 
执行kubectl create xxx.
然后就是正常的等待jenkins配置(注意,jenkins 2.60 的dockerhub版本并不支持kubernetes插件安装,如果不用插件用人肉配置也ok,但鉴于jenkins 2.153版本已经出现且支持kubernetes的插件安装,故采用了jenkins新版)
 
当然,为了体现出kubenetes的优势,请把executor number设为0.
 
其次kubernetes配置(如果是本机kubenetes,插件会自动识别并且填好所有东西,如果是非本机的集群,就需要人肉补充了):
 K8s+jenkins实现提升效率 —— 一些小记录

 

 
K8s+jenkins实现提升效率 —— 一些小记录

 

大功告成!用3个job测试一下:
job1,job2,job3: 
 
 K8s+jenkins实现提升效率 —— 一些小记录
在executor为0的情况下,会创建3个container来跑这3个job,跑完回收~
 
效果图:
executor为0,但3个job在执行:
K8s+jenkins实现提升效率 —— 一些小记录

 

相关文章:

  • 2021-11-05
  • 2019-07-14
  • 2021-08-27
  • 2021-09-30
  • 2018-12-28
  • 2021-04-19
  • 2021-12-03
猜你喜欢
  • 2022-12-23
  • 2021-07-28
  • 2021-10-15
  • 2021-11-19
  • 2022-12-23
  • 2021-08-22
相关资源
相似解决方案