一、背景信息¶
| k8s 安装方式 | 二进制 |
|---|---|
| k8s 版本 | 1.23.17 |
| 服务器系统版本 | Centos7 |
| 机器 | 虚拟机-VMware |
二、问题¶
2.1 问题一¶
2.1.1 问题概述¶
Devops实践章节-自动化构建 Java 应用中定义 Kubernetes 资源通过yaml创建资源Pod发生报错,具体现象为Pod显示Running但是READY不为1/1


2.1.2 日志报错信息¶
系统报错日志如下:

kubectl get po -nkube-system -owide 结果如下

kubectl get svc 结果如下:

异常容器日志如下:


2.1.3 尝试方法¶
怀疑虚拟机性能问题,添加sleep时间,无效
2.2 问题二¶
2.2.1 问题概述¶
Devops实践章节-自动化构建 Java 应用中发版时,Pod一直重建删除


2.2.2 日志报错信息¶
系统报错日志如下:

kubectl get po -nkube-system -owide 结果如下

kubectl get svc 结果如下:

异常容器日志如下:
May 01, 2023 1:18:59 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Terminated
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Performing onReconnect operation.
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: onReconnect operation completed.
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [http://192.168.1.36:8080/]
May 01, 2023 1:19:09 PM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve
INFO: Remoting server accepts the following protocols: [JNLP4-connect, Ping]
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Agent discovery successful
Agent address: 192.168.1.36
Agent port: 50000
Identity: 76:78:cc:2c:a7:d9:a1:b1:36:04:9b:10:c5:c8:25:0d
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to 192.168.1.36:50000
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP4-connect
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Remote identity confirmed: 76:78:cc:2c:a7:d9:a1:b1:36:04:9b:10:c5:c8:25:0d
May 01, 2023 1:19:09 PM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected
May 01, 2023 1:19:09 PM hudson.remoting.UserRequest perform
WARNING: LinkageError while performing UserRequest:hudson.slaves.SlaveComputer$SlaveVersion@8213ea3
java.lang.UnsupportedClassVersionError: Failed to load hudson.slaves.SlaveComputer$SlaveVersion
at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:385)
at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:134)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1868)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
at hudson.remoting.UserRequest.deserialize(UserRequest.java:291)
at hudson.remoting.UserRequest.perform(UserRequest.java:190)
at hudson.remoting.UserRequest.perform(UserRequest.java:54)
at hudson.remoting.Request$2.run(Request.java:369)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:93)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.UnsupportedClassVersionError: hudson/slaves/SlaveComputer$SlaveVersion has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:383)
... 21 more
2.2.3 尝试方法¶
1.把 Jenkinsfile 里面 jnlp 的镜像 tag 从 alpine 改成 latest-jdk11,会直接提示找不到

- Jenkins URL配置,填写自己的jenkins url,没有效果

2.2.4 解决方案¶
1.Java Version 问题,需要把 Jenkinsfile 里面 jnlp 的镜像 tag 从 alpine 改成 latest-jdk11
'registry.cn-beijing.aliyuncs.com/dotbalo/jnlp:latest-jdk11'
2.3 问题三¶
2.3.1 问题概述¶
自动发版完成后,Pod起不来,拉取不到镜像

2.3.2 日志报错信息¶
kubectl describe po spring-boot-project-55fd9f88c4-qhnzn -n kubernetes

2.3.3 尝试方法¶
1.检查自身防火墙是否关闭,发现已关闭
2.检查项目是否为公开,项目为已公开且部署安全已关闭

3.本地环境拉取镜像,检查可以正常拉取