[英]Docker Containers as Jenkins Slave
我想知道以下幾種可能的情況,請幫幫我:-
情況1 :-
我將本地系統作為Jenkins主服務器,每次需要一個從屬服務器來運行自動化測試腳本時,都會將一個Docker容器旋轉為Jenkins從屬服務器,並且我的腳本在該從屬服務器上執行,執行完成后,該容器將被銷毀。
這可能嗎 。 我想保留我的本地系統作為Jenkins管理員。
方案2 :-
我可以作為Jenkins主服務器啟動多個容器作為本地系統的Jenkins從服務器。
謝謝
JENKINS / Kubernetes插件至少涵蓋了方案1:請參閱其自述文件
根據使用Kubernetes擴展Docker的文章 ,自動運行在Kubernetes中運行的Jenkins代理的擴展。
但這需要Kubernetes設置,這意味着,在您的情況下(如果只有一台機器)是minikube 。
我通過以下鏈接在方案1(使用Kubernetes)上寫了一條消息:
這里的帖子。
建議您不要創建證書,而是通過創建serviceAccount在kubernetes中使用憑據:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: jenkins
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get","list","watch"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: jenkins
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jenkins
subjects:
- kind: ServiceAccount
name: jenkins
並使用該serviceAccount部署jenkins:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: jenkins
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
serviceAccountName: jenkins
....
我為您顯示了Kubernetes插件的屏幕截圖(請注意JNLP端口的Jenkins隧道,“ jenkins”是我的kubernetes服務的名稱):
對於憑據:
然后填寫文件(ID將自動生成,描述將顯示在憑據列表框中),但是請確保像我之前說的那樣在kubernetes中創建了serviceAccount:
我的說明適用於kubernetes中的Jenkins大師。 如果您想在集群外部(但在從服務器內部),則必須使用簡單的登錄/密碼憑證。
希望對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.