簡體   English   中英

Docker容器作為Jenkins從站

[英]Docker Containers as Jenkins Slave

我想知道以下幾種可能的情況,請幫幫我:-

情況1 :-

我將本地系統作為Jenkins主服務器,每次需要一個從屬服務器來運行自動化測試腳本時,都會將一個Docker容器旋轉為Jenkins從屬服務器,並且我的腳本在該從屬服務器上執行,執行完成后,該容器將被銷毀。

這可能嗎 。 我想保留我的本地系統作為Jenkins管理員。

方案2 :-

我可以作為Jenkins主服務器啟動多個容器作為本地系統的Jenkins從服務器。

謝謝

JENKINS / Kubernetes插件至少涵蓋了方案1:請參閱其自述文件

根據使用Kubernetes擴展Docker的文章 ,自動運行在Kubernetes中運行的Jenkins代理的擴展。

但這需要Kubernetes設置,這意味着,在您的情況下(如果只有一台機器)是minikube

我通過以下鏈接在方案1(使用Kubernetes)上寫了一條消息:

Jenkins 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM