Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

134
Views
Obtener el código de estado 422 al crear un trabajo de Kubernetes usando nodejs

Estoy creando un trabajo de Kubernetes dentro de la clase NodeJS Después de importar la biblioteca @kubernetes/client-node , creé un objeto para usar el módulo BatchV1Api dentro de la función que estoy exportando a otra clase en la que he definido el cuerpo del trabajo de Kubernetes como esto:

//listJobs.js

 import { post } from '../kubeClient.js'; const kubeRoute = async (ctx) => { const newJob = { metadata: { name: 'countdown', }, spec: { template: { metadata: { name: 'countdown', }, }, spec: { containers: [ { name: 'counter', image: 'centos:7', command: 'bin/bash, -c, for i in 9 8 7 6 5 4 3 2 1 ; do echo $i ; done', }], restartPolicy: 'Never', }, }, }; const kubeClient = post(); kubeClient.createNamespacedJob('default', newJob); ctx.body = { // listConfigMap: (await kubeClient.listConfigMapForAllNamespaces()).body, listJobs: (await kubeClient.listJobForAllNamespaces()).body, // listService: (await kubeClient.listServiceForAllNamespaces()).body, }; }; export default kubeRoute;

Luego creé una clase de enrutador para solicitar el método de publicación como:

 import post from './listJobs.js'; const apiRouter = new Router(); apiRouter.post('/api/v1/newJob', post);

al ejecutar la aplicación y solicitar la ruta localhost:3000/api/v1/newJob como una solicitud posterior en cartero, muestra el código de estado 422 (con una salida muy larga, como en la captura de pantalla) en el terminal de código vs y algunos Kubernetes información en el cuerpo del cartero, pero no está creando ningún trabajo o pod.

KubeJobTerminalError

¿Alguien tiene alguna idea de por qué hay un código 422 al final?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El código de estado 422 Entidad no procesable significa que el servidor comprende el tipo de contenido y la sintaxis de la solicitud es correcta, pero no pudo procesar las instrucciones contenidas.

Sin embargo, en su caso, el manifiesto de trabajo se ve mal.

No soy un experto en JavaScript kubernetes client, pero el cuerpo de newJob se ve extraño. El yaml resultante debería verse así

 apiVersion: batch/v1 kind: Job metadata: name: countdown spec: template: spec: containers: - name: counter image: centos:7 command: 'bin/bash, -c, for i in {9..1} ; do echo $i ; done' #fixed this one for you restartPolicy: Never

En su caso, la segunda spec es un elemento secundario de la spec . Debería ser un elemento secundario de la template , por lo que:

 { "metadata": { "name": "countdown" }, "spec": { "template": { "spec": { "containers": [ { "name": "counter", "image": "centos:7", "command": "bin/bash, -c, for i in {9..1} ; do echo $i ; done" } ], "restartPolicy": "Never" } } } }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!