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

Kubernetes部署Jenkins时插件加载失败问题求助

问题描述
  • 本地通过Docker运行自定义Jenkins镜像jenkins401:v1正常,初始化流程无异常:
    [root@master1 ~]# docker run -p 8080:8080 -p 50000:50000 --name jenkins -v jenkins_home:/var/jenkins_home jenkins401:v1
    
    Jenkins initial setup is required. An admin user has been created and a password generated.
    Please use the following password to proceed to installation:
    ***
    
    This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
    
  • Kubernetes部署Jenkins时,持续出现插件加载失败错误,关键日志显示插件要求Jenkins版本不低于2.414.3(或更高):
    [root@node1 ~]# kubectl logs -f jenkins-master-5d69c54b48-2jdxg -n jenkins
    
    java.io.IOException: Failed to load: Command Agent Launcher Plugin (command-launcher 115.vd8b_301cc15d0)
     - Jenkins (2.440.3) or higher required
            at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:994)
            ...
    
  • Kubernetes版本为v1.20.9:
    [root@node1 ~]# kubeadm version
    kubeadm version: &version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.9", GitCommit:"7a576bc3935a6b555e33346fd73ad77c925e9e4a", GitTreeState:"clean", BuildDate:"2021-07-15T21:00:30Z", GoVersion:"go1.15.14", Compiler:"gc", Platform:"linux/amd64"}
    
  • 已尝试更换Jenkins版本,但问题依旧,怀疑K8s部署YAML配置存在问题。
解决方案

1. 匹配Jenkins镜像与插件版本

日志明确显示插件要求Jenkins≥2.440.3,检查K8s Deployment YAML的image字段:

  • 若使用官方镜像,直接指定符合要求的LTS版本,比如jenkins/jenkins:2.440.3-lts(LTS版本稳定性更高)
  • 若使用自定义镜像jenkins401:v1,确认该镜像的Jenkins内核版本是否真的满足插件要求(本地Docker运行时可能手动选择了低版本插件,而K8s部署可能自动拉取最新插件导致冲突)

2. 强制指定兼容的插件版本

通过K8s ConfigMap挂载插件清单文件,指定与当前Jenkins版本兼容的插件版本,避免自动拉取高版本:

  1. 创建plugins.txt文件,示例内容:
command-launcher:106.v10f22881d154 # 该版本兼容Jenkins 2.414.3及以下版本
git:5.2.0
workflow-aggregator:2.6
  1. 在K8s Deployment中挂载该文件到容器内的/usr/share/jenkins/ref/plugins.txt,让Jenkins启动时安装指定版本插件。

3. 清理残留的旧插件数据

若之前部署过不同版本Jenkins,PersistentVolumeClaim(PVC)中可能残留旧插件文件,导致版本冲突:

  • 删除原PVC及对应PersistentVolume(PV),重新创建干净存储卷
  • 或进入Jenkins容器,删除/var/jenkins_home/plugins目录下的冲突插件文件,再重启Pod

4. 修正K8s部署YAML配置

检查Deployment配置的核心项:

  • 确认image字段指定了符合插件要求的Jenkins版本
  • 确保存储卷权限正确:Jenkins容器默认使用UID为1000的jenkins用户,需保证PV允许该用户读写
  • 配置足够的资源限制:CPU、内存不足可能导致插件加载失败
    示例Deployment核心片段:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-master
  namespace: jenkins
spec:
  template:
    spec:
      serviceAccountName: jenkins
      containers:
      - name: jenkins
        image: jenkins/jenkins:2.440.3-lts # 指定兼容插件的版本
        resources:
          requests:
            cpu: "1"
            memory: "2Gi"
          limits:
            cpu: "2"
            memory: "4Gi"
        volumeMounts:
        - name: jenkins-home
          mountPath: /var/jenkins_home
        - name: plugins-config
          mountPath: /usr/share/jenkins/ref/plugins.txt
          subPath: plugins.txt
      volumes:
      - name: jenkins-home
        persistentVolumeClaim:
          claimName: jenkins-pvc
      - name: plugins-config
        configMap:
          name: jenkins-plugins

5. 检查插件仓库网络连通性

若K8s集群无法访问官方插件仓库updates.jenkins.io,Jenkins会使用缓存的旧插件索引,导致拉取不兼容版本:

  • 在Jenkins容器内执行curl https://updates.jenkins.io/update-center.json测试网络连通性
  • 若网络不通,通过ConfigMap挂载国内镜像源配置文件hudson.model.UpdateCenter.xml:
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:52:28