You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不改动Jenkins部署的前提下用JNLP连接EKS Fargate与ALB后的Jenkins

解决方案:无需改动Jenkins部署的JNLP跨账号Fargate连接方案

核心问题本质

ALB是HTTP/HTTPS七层负载均衡,会对流量做HTTP解析和处理,而Jenkins JNLP4协议依赖原始TCP字节流传输,ALB无法透传这类非HTTP流量,导致握手时丢失确认序列,触发连接拒绝。换alpine镜像无法解决,因为问题出在传输层而非镜像环境。

具体实现步骤

  • 给Jenkins EC2新增NLB专门承载JNLP流量

    1. 在Jenkins所在VPC创建Network Load Balancer(NLB),选择TCP协议,监听端口设为50000(对应Jenkins默认JNLP端口,若已修改则同步调整)。
    2. 创建目标组,类型选instance,目标指向运行Jenkins的EC2实例,端口设为50000。
    3. 调整EC2安全组:开放50000端口给EKS Fargate所在账号的VPC CIDR或Fargate专用安全组。
    4. 调整NLB安全组:允许EKS Fargate侧的流量访问50000端口。
  • 配置Jenkins Kubernetes插件指向NLB的JNLP地址

    1. 进入Jenkins全局配置,找到Kubernetes插件的设置项。
    2. 在JNLP Agent Tunnel字段填入NLB的DNS名称加端口,格式为:nlb-xxxxxx.elb.amazonaws.com:50000。
    3. 确保Jenkins主节点的JNLP端口配置(Manage Jenkins > Configure Global Security > Agent)与NLB监听端口一致。
  • 跨账号权限验证
    确认EKS Fargate所在AWS账号的网络策略/安全组允许访问NLB的50000端口,可通过在Fargate Pod内执行telnet <NLB地址> 50000测试连通性。

关键说明

此方案无需改动现有Jenkins的EC2部署和ALB配置,仅通过新增NLB分流JNLP流量,既保留原有ALB的HTTP/HTTPS访问能力,又解决了Fargate代理的JNLP连接问题。

内容的提问来源于stack exchange,提问作者cyrax1441

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:12:37