尝试在aks上连续部署java springboot微服务时,却给了我UnsupportedClassVersionError。我正在使用“ kubectl apply -f file.yaml” 命令来应用部署。即使现在编译正确的编译器版本后,它仍然会抱怨相同。不知道我在哪里失踪。
首次尝试
-使用oracle openjdk 11进行编译
-使用 javap -verbose MyApplication |检查编译的类版本findstr “ major”
控制台输出-主要版本:55
-向aks部署失败
第二次尝试
-使用oracle jdk 1.8编译
-使用' javap -verbose MyApplication |检查编译的类版本。 findstr “ major”'
控制台输出-主要版本:52
-部署到aks失败
两种部署的共同点
-使用命令“ kubectl apply -f myapp.yaml ”部署在aks集群上
-收到相同的错误,即
> Exception in thread "main" java.lang.UnsupportedClassVersionError:
> MyApplication 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.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
> at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
> at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
> at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)
> at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)
请求帮助
致谢
答案 0 :(得分:0)
默认拉取策略设置为IfNotPresent
,它告诉Kubelet如果计划pod
的节点上已经存在该图像,则跳过该图像。
如果要强制将图像始终拉出,可以执行以下操作:
- 将容器的
imagePullPolicy
设置为Always
。- 省略
imagePullPolicy
,并使用:latest
作为要使用的图像的标签。- 省略
imagePullPolicy
和要使用的图像标签。- 启用AlwaysPullImages准入控制器。
请注意,您应该避免使用
:latest
标记,有关更多信息,请参见Best Practices for Configuration。