我想知道以下可能的情况,请帮帮我:
情景1 : -
我的本地系统是Jenkins Master,每当我需要一个奴隶来运行我的自动化测试脚本时,一个docker容器就会像Jenkins奴隶一样旋转,我的脚本在奴隶上执行,并且在执行完成后容器被摧毁。
这可能吗?我想把我的本地系统保留为Jenkins大师。
场景2 : -
我可以将多个容器作为本地系统的Jenkins从属设备作为Jenkins主机启动。
由于
答案 0 :(得分:3)
情景1至少由JENKINS/Kubernetes Plugin涵盖:请参阅its README
基于Scaling Docker with Kubernetes article,自动扩展在Kubernetes中运行的Jenkins代理。
但这需要Kubernetes设置,这意味着,在您的情况下(如果您只有一台机器),minikube。
答案 1 :(得分:1)
我在这个链接上写了一个关于场景1(与Kubernetes)的消息:
Jenkins kubernetes plugin not working
这里的帖子。
我建议你不要使用证书,而是通过创建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大师。如果你想在群集之外(但是奴隶在里面),我认为你必须使用简单的登录/密码凭证。
我希望它可以帮到你。