当前位置:网站首页>Jenkins 分布式架构

Jenkins 分布式架构

2022-01-15 02:03:07 markix

官方文档:
https://wiki.jenkins.io/display/JENKINS/Distributed+builds
https://www.jenkins.io/doc/book/scaling/architecting-for-scale/#distributed-builds-architecture
https://www.jenkins.io/doc/book/using/using-agents/

JENKINS_HOME目录结构:https://www.jenkins.io/doc/book/scaling/architecting-for-scale/#anatomy-of-a-jenkins_home

架构

Jenkins 可以单节点运行(singleton),也可以是集群模式(Master+Agent,Master 设计用于协调并提供 GUI 和 API 端点,而 Agent 设计用于执行工作)。
Master:主节点
Agent:代理、从节点

启动代理有多种方式,但最终Agent和Master需要建立双向通信链路(例如TCP/IP socket)才能运行。

  • Master to agent connections
    由Master连接到Agent,一般通过ssh。(比较少见)
  • Agent to master connections
    由Agent连接到Master,一般通过JNLP。

启动代理的不同方式

  • master 通过 ssh 连接到 agent
  • master 通过自定义脚本连接到 agent
  • agent 通过浏览器连接到 master(本质为JNLP)
  • agent 通过命令行连接到 master(本质为JNLP)

Agent的Jar包下载地址:http://yourserver:port/jnlpJars/agent.jar

$ java -jar agent.jar -jnlpUrl http://ip:port/computer/agent-name/slave-agent.jnlp
$ java -jar agent.jar -jnlpUrl http://ip:port/computer/agent-name/slave-agent.jnlp -jnlpCredentials builder:12345
$ java -jar agent.jar -jnlpUrl http://ip:port/computer/agent-name/slave-agent.jnlp -secret 205b186808f70c0b2e

Agent的Docker镜像:https://hub.docker.com/r/jenkins/inbound-agent

$ docker run --init jenkins/inbound-agent -url http://jenkins-server:port <secret> <agent name>

Agent

Agent有标签信息,流水线可以通过标签来选择运行在哪个Agent上。

版权声明
本文为[markix]所创,转载请带上原文链接,感谢
https://markix.blog.csdn.net/article/details/119987167

随机推荐