jenkins-k8s-Class not found io.kubernetes.client.openapi.models.V1Service报错

网友投稿 669 2022-10-22

jenkins-k8s-Class not found io.kubernetes.client.openapi.models.V1Service报错

jenkins-k8s-Class not found io.kubernetes.client.openapi.models.V1Service报错

1.背景

由于jenkins需要迁移的原因,公司的jenkins升级至最新版本。相同的ci/cd流程,以及相同的执行脚本,但是就是在最后一步cd推送至kubernetes集群的时候报错。

本次案例相关版本:

Jenkins版本(2.2.338)Kubernetes Continuous Deploy(2.3.1)Jackson 2 api(2.13.1)

报错见以下:

ERROR: ERROR: Can't construct a java object for tag:yaml.org,2002:io.kubernetes.client.openapi.models.V1Service; exception=Class not found: io.kubernetes.client.openapi.models.V1Service in 'reader', line 1, column 1: apiVersion: v1 ^hudson.remoting.ProxyException: Can't construct a java object for tag:yaml.org,2002:io.kubernetes.client.openapi.models.V1Service; exception=Class not found: io.kubernetes.client.openapi.models.V1Service in 'reader', line 1, column 1 apiVersion: v1

2.排错过程

发现问题后就开始百度搜索,刚开始搜索到一篇文章,解决步骤如以下:

1.git clone pom com.fasterxml.jackson.dataformat jackson-dataformat-yaml ${jackson.version} org.yaml snakeyaml io.jenkins.plugins snakeyaml-api

3.执行mvn clean install打包

有可能会build失败,报错[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M3:enforce (display-info) on project jackson2-api: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]

在CommandLine填写 install -Denforcer.skip=true

选择该配置执行

4.将target中jackson2-api.hpi上传至jenkins插件

以上案例发现几个问题,对我这次修复不太适用。

1.该文章中修复方法的jenkins版本肯定比2.338版本要早几个版本。导致插件版本不同。如jackson2的版本(在2022年3月10日 时),在git最新的tag为2.12.4,但是在2.338的jenkins版本里,最新的版本为2.13.1-246.我这边如果真的替换编译也不一定能成功。

2.重新编译时间非常长,在一台4C8G的机器上,跑了2小时,可能是网速的问题,但是最后还是报错了。

3.搜索某些答案,其中提到,如果重新编译jackson2的插件,可能导致其他一些关联插件没有办法使用。

由于该方式成本过高,只能查找其他解决方案。

3.问题解决

于是仔细一想,只有cd部分出现问题,果然在网上找到这部分案例。该案例说将kubernetes cd插件降级至1.0.0即可。

根据以上案例,可以看出这篇案例不要降级jackson 插件,不然可能会对现有插件有影响。

最后按照这篇文章降级kubernetes插件至1.0.0完美解决。

以下是我降级后的截图。

相关参考:

​​  https://stackoverflow.com/questions/62688901/class-not-found-io-kubernetes-client-openapi-models-v1service​​

作者:​​小家电维修​​

转世燕还故榻,为你衔来二月的花。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于jsonwebtoken包用于Nest的JWT实用程序模块
下一篇:offlinenotepad是一个开源的离线笔记应用程序
相关文章

 发表评论

暂时没有评论,来抢沙发吧~