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在執行:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM