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

尝试下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,插件会自动识别并且填好所有东西,如果是非本机的集群,就需要人肉补充了):
 
 
大功告成!用3个job测试一下:
job1,job2,job3: 
 
 
在executor为0的情况下,会创建3个container来跑这3个job,跑完回收~
 
效果图:
executor为0,但3个job在执行:
原文地址:https://www.cnblogs.com/spillage/p/10429125.html