Kubernetes中Jenkins Agent无法通信,构建时出现JNLP错误
解决Jenkins Kubernetes动态Agent的JNLP SSL连接错误
问题分析
从错误日志可定位核心原因:
- JNLP Agent尝试通过
https://10.233.35.35:8080/tcpSlaveAgentListener/连接Jenkins服务 - 但你的Jenkins服务8080端口为纯HTTP协议(服务信息显示
8080:32000/TCP,无HTTPS配置),Agent用HTTPS协议连接HTTP端口,直接触发SSL握手失败,抛出Unsupported or unrecognized SSL message错误。
解决方案
方案1:修正Jenkins Kubernetes插件全局配置
进入Jenkins全局配置 → Kubernetes插件配置,找到Jenkins URL字段,修改为集群内可访问的HTTP地址:
http://jenkins-service:8080
(jenkins-service为你的Jenkins服务名,集群内DNS可直接解析该名称)
方案2:在流水线中单独指定Jenkins URL
若不想修改全局配置,可在流水线的kubernetes agent块中显式指定HTTP协议的Jenkins URL,覆盖全局设置:
pipeline { agent { kubernetes { jenkinsUrl 'http://jenkins-service:8080' yaml ''' apiVersion: v1 kind: Pod spec: containers: - name: maven image: maven:alpine command: - cat tty: true ''' } } stages { stage('Run Maven'){ steps { container('maven'){ sh 'mvn -version' } } } } }
额外验证点
- 确认Jenkins未在8080端口启用HTTPS:检查Jenkins启动参数,若无
--httpsPort相关配置,则8080为纯HTTP端口。 - 集群内连通性测试:在任意Pod内执行
curl http://jenkins-service:8080,确认能正常返回Jenkins页面。
内容的提问来源于stack exchange,提问作者raboy
相关产品推荐
相关产品推荐

