Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

125
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda