Jenkins控制器Pod重启后自定义Kubernetes代理模板丢失求助
Jenkins Kubernetes插件代理模板重启丢失解决方案
问题概述
使用Jenkins Kubernetes插件配置自定义构建代理后,主节点重启时Manage Jenkins > Configure System > Cloud > Kubernetes下的自定义代理模板会丢失,需手动重新添加。
排查与修复方案
1. 确认配置存储权限与手动保存
- 检查
$JENKINS_HOME目录及子文件(尤其是config.xml)的权限,确保Jenkins运行用户拥有读写权限,目录设为755、文件设为644。 - 配置完代理模板后,务必手动点击页面右上角的「保存」按钮,不要依赖自动保存机制。
2. 排查Configuration as Code (JCasC) 冲突
- 若启用了JCasC插件,UI配置会被JCasC的配置文件覆盖,需将代理模板写入
jenkins.yaml的clouds节点,示例配置:clouds: - kubernetes: name: "kubernetes" templates: - name: "custom-agent" label: "custom-agent" containers: - name: "jnlp" image: "jenkins/inbound-agent:latest" args: "^${computer.jnlpmac} ^${computer.name}" - 若不使用JCasC,直接禁用该插件,避免干扰本地配置存储。
3. 修复插件版本兼容性问题
- 核对Kubernetes插件与Jenkins核心版本的兼容性,避免使用存在配置存储bug的旧版本(如部分2.0.x版本)。
- 升级Kubernetes插件到最新稳定版,同时确保Jenkins核心版本在插件支持范围内。
4. 手动备份配置文件
- 每次配置完成后,备份
$JENKINS_HOME/config.xml文件;重启后若模板丢失,替换备份文件并重启Jenkins即可恢复。 - 也可单独备份
config.xml中的<clouds>节点内容,重启后粘贴回原位置。
5. 检查启动脚本与自动化干扰
- 确认Jenkins启动参数中没有通过
--config指定外部配置文件,避免覆盖本地config.xml。 - 排查是否有自动化脚本在重启时重置Jenkins配置目录。
内容的提问来源于stack exchange,提问作者Anouar
相关产品推荐
相关产品推荐

