前言
Jenkins服务部署在k8s集群上,之前的项目涉及的代理节点和集群在同一个内网网段
环境
Jenkins 对应jdk版本为openjdk version "11.0.18"
问题描述
Jenkins要添加外部网络下的代理节点无法通过Node IP+NodePort直接配置。
分析过程
查看Jenkins对该代理端口的说明
![](https://img-blog.csdnimg.cn/img_convert/16d7d61b9ad4111a8e0e144a72a7dc04.png)
结合在配置用Nginx反向代理Jenkins时看到的文档
![](https://img-blog.csdnimg.cn/img_convert/bcb7009ee3c837e2e7653d0a0262f984.png)
可以利用Nginx反向代理TCP流量的能力,将部署在k8s集群中的Jenkins的代理端口向外部网络开放
解决方案
首先通过nodePort暴露该代理端口
![](https://img-blog.csdnimg.cn/img_convert/a815a525f354eea70df94a6335971d83.png)
其次在外部网络可访问的nginx代理服务器上编辑nginx.conf,添加stream块
![](https://img-blog.csdnimg.cn/img_convert/7438e8c3c98814e114cdf83e1f7d2c37.png)
最好重启nginx服务,现在外部网络的节点能连上jenkins了
![](https://img-blog.csdnimg.cn/img_convert/01cd73a9d11bb000a279679699941817.png)