Jenkins(在 Kubernetes 节点上)提示它需要更新版本的 Jenkins 才能运行我的一些插件。
SEVERE: Failed Loading plugin Matrix Authorization Strategy Plugin v2.4.2 (matrix-auth) java.io.IOException: Matrix Authorization Strategy Plugin v2.4.2 failed to load. - You must update Jenkins from v2.121.2 to v2.138.3 or later to run this plugin.
同一个日志文件还进一步提示它无法读取我的配置文件...我希望这只是因为上面的版本问题,但我将其包含在此处以防它是一个标志更深层次的问题:
SEVERE: Failed Loading global config java.io.IOException: Unable to read /var/jenkins_home/config.xml
我要么想禁用导致问题的插件,以便我可以看到 Jenkins UI 并从那里管理插件,要么我想以不删除的方式更新 Jenkins我的用户数据和作业配置数据。
到目前为止,我尝试通过将 .disabled 文件添加到 Jenkins 插件文件夹来禁用所有插件。这消除了大部分错误,但它仍然提示上面的插件。所以我为此删除了 .disabled 文件,现在它提示 Jenkins 再次不是一个足够新的版本(上面的错误)。
注意:此 Jenkins 安装使用持久存储卷,通过 EFS 挂载。因此,如果我们需要做的话,这可能有助于减轻升级 Jenkins 的一些限制。
最后,无论我们对插件和 Jenkins 版本做什么,我都需要确保如果 Kubernetes 将来重新启动节点,更改将持续存在。不幸的是,我对 Kubernetes 相当陌生,我还没有发现需要在哪里进行这些更改。我猜是控制 Kubernetes 部署配置的文件?
这个项目正在使用 Helm,以防万一。但同样,我对 Helm 几乎一无所知,所以我不知道您可能需要查看哪些文件才能解决这个问题。请发表评论,以便我知道在此处包含哪些内容以帮助提供所需的信息。
最佳答案
我们的集群遇到了同样的问题,我们对此有一个基本的解释,但不确定(以下修复有效)
该错误是因为您通过 Helm 安装了 Jenkins,并通过 Jenkins UI 安装了它们的插件。如果您决定不再重新启动 Pod,它会起作用,但如果有一天, Jenkins 必须再次进行初始化,您将面临该错误。 Jenkins 尝试从 JENKINS_PLUGINS_DIR 加载插件,该目录是空的,因此 pod 死掉了。
要修复当前错误,您应该在 master.installPLugins 参数中指定您的插件。 如果您遵循正常安装,只需进入集群即可
helm get values jenkins_release_name
所以你可能有类似的东西:
master:
enableRawHtmlMarkupFormatter: true
installPlugins:
- kubernetes:1.16.0
- workflow-job:2.32
默认情况下,一些值由 helm“嵌入”,以确保 jenkins 正常工作,请参阅此处了解更多详细信息:Github Helm Charts Jenkins
因此,只需将其复制到具有相同语法的文件中,然后添加插件及其版本即可。之后,您只需对版本上的文件使用 helm Upgrade 命令:
helm upgrade [RELEASE] [CHART] -f your_file.yaml
祝你好运!
关于Kubernetes 节点上的 Jenkins 提示其插件需要更新版本的 Jenkins,但又不想丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56562065/