繁体   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