es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

programar trabajo después de cron en Kubernetes

Tengo el nombre Cron “cronX” y un nombre de Trabajo “JobY”. ¿Cómo puedo configurar Kubernetes para ejecutar “JobY” después de que “cronX” haya finalizado?

Sé que puedo hacerlo utilizando una llamada de API desde “cronX” para iniciar “JobY”, pero no quiero hacerlo usando una llamada de API.

¿Existe alguna configuración de Kubernetes para programar esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes utilizar la siguiente configuración de Kubernetes para programar que el JobY se ejecute después de la finalización de cronX:

    1. Crea un recurso CronJob con la programación deseada para cronX.
    2. Define un recurso Job para JobY y agrega un campo .spec.dependency que haga referencia al nombre del CronJob.

    El campo .spec.dependency indica a Kubernetes que cree un objeto Job solo cuando el CronJob especificado se complete con éxito.

    Ejemplo de configuración YAML:

    apiVersion: batch/v1beta1
    kind: CronJob
    metadata:
      name: cronX
    spec:
      schedule: "*/5 * * * *"
      jobTemplate:
        spec:
          template:
            spec:
              containers:
                - name: cronX-container
                  image: your-image
                  command: ["your-command"]
              restartPolicy: OnFailure
    
    ---
    
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: JobY
    spec:
      backoffLimit: 4
      template:
        spec:
          containers:
            - name: JobY-container
              image: your-image
              command: ["your-command"]
          restartPolicy: OnFailure
      # Agregar dependencia en cronX
      dependency:
        type: "CronJob"
        name: "cronX"
    

    En la configuración de ejemplo anterior, el CronJob “cronX” está programado para ejecutarse cada cinco minutos. El Job “JobY” está definido con un campo “.spec.dependency” que especifica “cronX” como la dependencia. Esto asegura que Kubernetes solo comenzará el JobY después de que el CronJob “cronX” se complete con éxito.

Comments are closed.