Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

124
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda