![](/img/trans.png)
[英]istio error: Details: java.io.IOException: Unknown apiVersionKind
[英]Kubectl Unknown apiVersionKind batch/v1/Job is it registered?
我正在尝试从 minikube 中的 pod 创建一个工作。 下面是我的job.yaml
。 我正在使用client-java-11.0.0
API。 当我从 IDE 运行应用程序时,它会创建作业。 我使用Yaml.load(file)
加载文件
apiVersion: batch/v1
kind: Job
metadata:
name: mansoor-hello-world-job
spec:
template:
spec:
containers:
- name: mansoor-hello-world-job-image
image: job/mansoor-hello-world-job
imagePullPolicy: Never
ports:
- containerPort: 8080
# command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
现在我在一个容器中运行这个应用程序。 当我执行Yaml.load(file)
时,出现以下错误Unknown apiVersionKind batch/v1/Job is it registered?
. 任何想法?
下面是我的应用程序的 deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: job-runner-pod
spec:
selector:
matchLabels:
app: job-runner-pod-app
template:
metadata:
labels:
app: job-runner-pod-app
spec:
containers:
- name: job-runner-pod
image: pods/job-runner-pod
imagePullPolicy: Never
ports:
- containerPort: 8080
# command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
不知何故,您的Job
对象没有被客户端库正确地“检测”为Job
类型。 根据java-client
的 GitHub 问题板上的这个问题,您可以在将对象加载为文件之前指定对象的模型。
Yaml.addModelMap("batch/v1/Job", V1Job.class)
之后,当您加载 YAML 时,它将被适当地解释。
当我尝试创建 docker 映像时,jar 出现了问题。 我能够解决如下问题:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
<includes>
<include>
<groupId>non-exists</groupId>
<artifactId>non-exists</artifactId>
</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
并且在Dockerfile
中使用了像CMD ["java","-Dloader.path=/app/lib","-jar","/app/app.jar"]
Dockerfile
FROM openjdk
RUN mkdir -p /app
COPY target/lib /app/lib
COPY target/*.jar /app/app.jar
CMD ["java","-Dloader.path=/app/lib","-jar","/app/app.jar"]
EXPOSE 8080
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.