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

求助:Jenkins外部节点无法通过Kubernetes Nginx Ingress注册

解决Jenkins JNLP通过Rancher Nginx Ingress连接的400错误问题

看起来你遇到的核心问题是Nginx Ingress没有正确处理Jenkins JNLP代理的握手逻辑——虽然curl能拿到正常的响应头,但JNLP的二进制握手需要Ingress做特殊配置才能正常转发。下面是我整理的几个关键修复步骤:

1. 更新Ingress的Nginx核心注解

Jenkins的JNLP隧道依赖HTTP/1.1的Upgrade机制,默认的Nginx Ingress配置可能没开启相关支持。你需要给Ingress资源添加以下关键注解:

annotations:
  # 强制使用HTTP/1.1,支持协议升级握手
  nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
  # 传递Upgrade和Connection头,确保协议切换能正常触发
  nginx.ingress.kubernetes.io/proxy-set-header: "Upgrade $http_upgrade"
  nginx.ingress.kubernetes.io/proxy-set-header: "Connection $connection_upgrade"
  # 关闭代理缓冲,避免二进制握手数据被截断
  nginx.ingress.kubernetes.io/proxy-buffering: "off"
  # 如果你用的是HTTP而非HTTPS,关闭强制SSL重定向
  nginx.ingress.kubernetes.io/ssl-redirect: "false"
  # 确保关键请求头正确传递到Jenkins主节点
  nginx.ingress.kubernetes.io/configuration-snippet: |
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

2. 确认Ingress指向正确的Jenkins端口

注意:Jenkins的JNLP隧道是通过**UI端口(默认8080)**处理的,而非传统的JNLP TCP端口(50000)。你的Ingress后端Service必须指向Jenkins的8080端口,这一点很容易混淆。

示例Service配置:

apiVersion: v1
kind: Service
metadata:
  name: jenkins-service
spec:
  ports:
  - name: http
    port: 80
    targetPort: 8080
  selector:
    app: jenkins

同时Ingress的路径要覆盖/jenkins/前缀,匹配你使用的JNLP URL路径。

3. 验证Jenkins的隧道配置

进入Jenkins的「全局安全配置」,确认:

  • 未错误启用「代理协议」(除非你明确需要TCP代理模式)
  • 从节点配置的「通过隧道连接」选项确实指向你的Ingress主机名devops.xxxx.local

4. 测试修改后的配置

更新Ingress资源后,等待Nginx Ingress控制器刷新配置(通常几秒到几十秒),然后重新运行你的JNLP命令:

java -jar agent.jar -jnlpUrl http://devops.xxxx.local/jenkins/computer/EPHEMERAL-WIN-NODE/slave-agent.jnlp -secret xxxxxxxxxxxxxxx

如果仍有问题,可以查看Nginx Ingress控制器的日志(kubectl logs -n kube-system <nginx-ingress-controller-pod-name>),里面会有400错误的具体触发原因,比如头字段被截断或协议不兼容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:31:47