繁体   English   中英

Kubectl Unknown apiVersionKind batch/v1/Job 注册了吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM