jenkins的slave/agent如何通过tcp端口和master建立连接

Jenkins是master-slave/agent结构,可以通过代理把任务下发到各个agent/slave上去执行

如图,首先在master上开启代理配置,指定master上开启的tcp端口,以及和slave进行通信的代理协议

然后就可以创建新的节点(node)。只有上面开启了代理配置,这里的“启动方式”才会出现“通过Java Web启动代理”的选项

在某个slave机器上,主动建立和master的连接,点击里面的“Launch”按钮就可以下载文件slave-agent.jnlp,通过txt打开,可以看到里面的各种启动信息,包括密钥。

另外一种启动方式如下:

这里的remoting-3.33.jar和上面的agent.jar都是代理的jar包,仓库源码是: https://github.com/jenkinsci/remoting
这里的test就是上面配置从节点的名字,要保持一致

java -Dorg.jenkinsci.remoting.engine.JnlpProtocol3.disabled=true -cp target/remoting-3.33.jar hudson.remoting.jnlp.Main -headless -url http://127.0.0.1:6060/ 775369839f50faddcae785239ac85ab09274afa3bc5a77b0d45a63794ea74597 test

slave-agent.jnlp的内容如下

<jnlp codebase="http://127.0.0.1:6060/computer/test/" spec="1.0+">
    <information>
        <title>Agent for test</title>
        <vendor>Jenkins project</vendor>
        <homepage href="https://jenkins-ci.org/"/>
    </information>
<security>
    <all-permissions/>
</security>
<resources>
    <j2se version="1.8+"/><jar href="http://127.0.0.1:6060/jnlpJars/remoting.jar"/>
</resources>
<application-desc main-class="hudson.remoting.jnlp.Main">
    <argument>6824195ad033f0c52d3235e0da0aced40578d1908a5f21be9636b91ac19f1972</argument>
    <argument>test</argument>
    <argument>-workDir</argument>
    <argument>.jenkins/test</argument>
    <argument>-internalDir</argument>
    <argument>remoting</argument>
    <argument>-url</argument>
    <argument>http://127.0.0.1:6060/</argument>
    </application-desc>
</jnlp>

常见错误

  1. 连接时使用的名字不一致导致:jenkins的master上配置的节点名字要和slave上连接时使用的名字一致
  2. 认证失败,查看密钥方法见上文

谈下jenkinde插件kubernetes-plugin的实现原理

代码

主要是利用了上面的jnlp原理:
1、在全局配置里配置k8s信息,其中包括k8s地址,连接k8s的证书信息,k8s的命名空间namespace(创建slave/agent的地方),jenkins地址,k8s的pod节点配置模版等信息
2、监控jenkins的作业/任务Job排队情况,动态增加/减少slave/agent的数量
3、作业繁忙时,首先在Jenkins上创建从节点,拿到从节点的名字和密钥等信息
4、最后根据k8s的配置,远程调用k8s的创建pod,即slave/agent

slave/agent只是个代理,执行任务时,需要的jar包,都会从master上传输过来

Java Web Start即Java Network Launching Protocol (JNLP)

原文地址:https://www.cnblogs.com/shengulong/p/11373006.html

时间: 2024-10-09 23:18:55

jenkins的slave/agent如何通过tcp端口和master建立连接的相关文章

TCP 三次握手建立连接,四次挥手断开连接,图解详细分析,有个疑点求帮忙解答????

继文章  http://blog.csdn.net/simonchi/article/details/41722511   之后,我觉得有必要来详细的说一下TCP的三次握手和四次挥手的过程,帮助大家理解这个过程. 首先来看一下tcpdump抓取的网络数据包,如何抓包分析参考 上面给出的链接 图中红色框选的是三次握手建立连接 第一次:客户端发送SYN报文,并设置seq=0, 第二次:服务端收到SYN报文,知道对方要求建立连接,发送SYN和ACK报文,并设置seq=0,ack=0(第一次的seq)+

TCP保证可靠性、建立连接和断开连接的过程

TCP保证可靠性: (1)序列号.确认应答.超时重传 数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号会说明了它下一次需要接收的数据序列号.如果发送方迟迟未收到确认应答,那么可能是发送的数据丢失,也可能是确认应答丢失,这时发送方在等待一定时间后会进行重传.这个时间一般是2*RTT(报文段往返时间)+一个偏差值. (2)窗口控制与高速重发控制/快速重传(重复确认应答) TCP会利用窗口控制来提高传输速度,意思是在一个窗口大小内,不用一定要等到应答才能发送下一段数据,窗

telnet一个端口后显示建立连接,但是很快就close退出了

今天使用zabbix监控一台机器服务,zabbix agent本身端口是10050,我在其他机器上telnet一下是这样的. [[email protected] ~]# telnet 10.2.16.1 6818 Trying 10.2.16.1... Connected to 10.2.16.1. Escape character is '^]'. Connection closed by foreign host. 重点是红色这一行,连接上去之后很快就退出来了,不等我按下ctrl+] 符号

Zabbix系列之五——监控TCP端口

监控端口的几个主要Keys: net.tcp.listen[port] Checks if this port is in LISTEN state. 0 - it is not, 1 - it is in LISTEN state. 监控TCP端口是否监听 net.tcp.port[<ip>,port] Check, if it is possible to make TCP connection to the port number. 0 - cannot connect, 1 - can

TCP建立连接和断开连接

之前编写网络编程,都是按照TCP/IP编程模式下,少量连接正常,但是当连接达到1000000个之后就会出异常,但是代码都采取socket.close()了. 其实,即使一个连接,两端都close,还是显示TIME_WAIT netstat -an :查看端口 ========================================================================================= TCP: 三次握手建立连接: SYN:建立连接 ACK:确认

常见tcp端口

TCP端口 7 = 回显 9 = 丢弃 11 = 在线用户 13 = 时间服务 15 = 网络状态 17 = 每日引用 18 = 消息发送 19 = 字符发生器 20 = ftp数据 21 = 文件传输 22 = SSH端口 23 = 远程终端 25 = 发送邮件 31 = Masters Paradise木马 37 = 时间 39 = 资源定位协议 41 = DeepThroat木马 42 = WINS 主机名服务 43 = WhoIs服务 58 = DMSetup木马 59 = 个人文件服务

jenkins 配置slave节点(win10系统)

1.新建一个slave节点在Jenkins服务器上   上面中的只有一个需要强调了,就是“Launch method”,我们这里选择的是 “Launch slave agent via java Web Start ”,这个方式建议在windows上使用最好.下面的介绍也是针对的这种launch模式的. 关于这个配置slave的详细步骤如果需要的话可以在这个地方找到详细的操作步骤:https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+g

Python3实现TCP端口扫描

在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞. TCP端口扫描一般分为以下几种类型: TCP connect扫描:也称为全连接扫描,这种方式直接连接到目标端口,完成了TCP三次握手的过程,这种方式扫描结果比较准确,但速度比较慢而且可轻易被目标系统检测到. TCP SYN扫描:也称为半开放扫描,这种方式将发送一个SYN包,启动一个TCP会话,并等待目标响应

【翻译自mos文章】OGG replicat 进程使用的 TCP 端口

OGG replicat 进程使用的 TCP 端口 来源于: TCP PORT USED BY REPLICAT PROCESSES (文档 ID 1060954.1) 适用于: Oracle GoldenGate - Version 10.4.0.12 and later Information in this document applies to any platform. ***Checked for relevance on 25-May-2012*** 症状: 若是一个客户基于少量的