How to set a time limit for a Kubernetes job?

I’d like to launch a Kubernetes job and give it a fixed deadline to finish. If the pod is still running when the deadline comes, I’d like the job to automatically be killed.

Does something like this exist? (At first I thought that the Job spec’s activeDeadlineSeconds covered this use case, but now I see that activeDeadlineSeconds only places a limit on when a job is re-tried; it doesn’t actively kill a slow/runaway job.)

  • How to stream the logs in docker python API?
  • How to pass host IP as environment variable when running a docker container on OS X
  • Node error ENOSPC when running pm2 with docker-compose
  • For a Docker container based implementation, does it make sense to run a pair of Kafka server and Zookeeper server inside the same container?
  • Add file into hidden folder
  • Makefile fails executing sudo docker kill
  • How do I configure “ulimits” for a Docker container running in AWS ECS?
  • Why are certain operations on mounted volume in a Docker container really slow?
  • Dockerfile created for JBoss with MySQL image
  • How to create and download image from Docker container running in Docker Swarm
  • gcloud docker push hanging
  • Docker: mounting volume and run node apps
  • One Solution collect form web for “How to set a time limit for a Kubernetes job?”

    You can self-impose timeouts on the container’s entrypoint command by using GNU timeout utility.

    For example the following Job that computes first 4000 digits of pi will time out after 10 seconds:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi
    spec:
      template:
        metadata:
          name: pi
        spec:
          containers:
          - name: pi
            image: perl
            command: ["/usr/bin/timeout", "10", "perl", "-Mbignum=bpi", "-wle", "print bpi(4000)"]
          restartPolicy: Never
    

    (Manifest adopted from https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#running-an-example-job)

    You can play with the numbers and see it timeout or not. Typically computing 4000 digits of pi takes ~23 seconds on my workstation, so if you set it to 5 seconds it’ll probably always fail and if you set it to 120 seconds it will always work.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.