使用Kubernetes Continuous Deploy插件将Kubernetes与Jenkins集成时,我遇到了错误。
此插件在Jenkins 2.190.3版之前都可以使用,但是在升级jenkins之后,它开始出现以下错误。
以下错误看起来像Yaml文件问题,但是当我手动执行时,yaml文件可以正常工作。
即使我无法降级kubernetes版本。
Jenkins Version : 2.235.2
Kubernetes Continuous Deploy Plugin : 2.3.0
13:19:19 Starting Kubernetes deployment
13:19:19 Loading configuration: /var/jenkins_home/workspace/bom_sso/bom_rs_deployment.yaml
13:19:19 ERROR: ERROR: Can't construct a java object for tag:yaml.org,2002:io.kubernetes.client.openapi.models.V1Deployment; exception=Class not found: io.kubernetes.client.openapi.models.V1Deployment
13:19:19 in 'reader', line 1, column 1:
13:19:19 apiVersion: apps/v1
13:19:19 ^
13:19:19
13:19:19 hudson.remoting.ProxyException: Can't construct a java object for tag:yaml.org,2002:io.kubernetes.client.openapi.models.V1Deployment; exception=Class not found: io.kubernetes.client.openapi.models.V1Deployment
13:19:19 in 'reader', line 1, column 1:
13:19:19 apiVersion: apps/v1
13:19:19 ^
13:19:19
13:19:19 at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:336)
13:19:19 at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:230)
谢谢
答案 0 :(得分:0)
您描述的问题正在ERROR: ERROR: java.lang.RuntimeException: io.kubernetes.client.openapi.ApiException: Not Found #122 github中讨论,但仍未解决。
这对于使用Jenkins版本:2.235.1 +的每个人都是非常实际的,不确定是否使用2.190.3
尚无修复程序,但是有1 workaround,也许可以帮助您
运行Kubernetes v1.18.3时遇到相同的问题。我正在运行Jenkins v2.235.1,并且我所有的插件都是最新的。
我现在发现的解决方法是将Jackson 2 API降级为 v2.10.3,并将Snakeyaml API降级到v1.26.2。如果那两个插件 已更新为各自最新的版本,错误消息 回来。
为了强制降级这2个插件,您可以手动删除 从plugins文件夹中下载它们,然后将HPI文件直接上传到 詹金斯确保上传上面列出的正确版本。
这是一个丑陋的解决方法,绝不应该将其视为 “修复”。
Jackson 2 API v2.10.0,
Kubernetes v1.21.3,
Kubernetes客户端API v4.6.3-1,
Kubernetes Continuous Deploy v2.1.2,
Kubernetes凭证v0.5.0
2)检查dns是否正常工作(非常重要) 2a)修改设置,根据需要自定义
kubectl edit cm coredns -n kube-system
apiVersion: v1
data:
Corefile: |
eureka cluster.local:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . 8.8.8.8
cache 30
loop
reload
loadbalance
}
kind: ConfigMap
metadata:
creationTimestamp: "2020-07-24T21:09:19Z"
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data: {}
manager: kubeadm
operation: Update
time: "2020-07-24T21:09:19Z"
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data:
f:Corefile: {}
manager: kubectl
operation: Update
time: "2020-07-27T05:30:57Z"
name: coredns
namespace: kube-system
resourceVersion: "952988"
selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
uid: 5a7fc41c-01a7-480a-89bd-82ab3070401c
2b)然后重新启动dns
kubectl get pods -n kube-system -oname |grep coredns |xargs kubectl delete -n kube-system
希望对您有帮助
答案 1 :(得分:0)
感谢VKR,
但幸运的是,它已在Jenkins 2.235.3版本中修复。
下面是我的配置。
Jenkins版本:2.235.3
谢谢