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.)

  • Docker example for frontend and backend application
  • How to set docker container time in Docker for Windows
  • Connecting to RDS Mysql from docker container with WordPress
  • standard_init_linux.go:178: exec user process caused “exec format error”
  • Docker Debian apt Error Reading from Server
  • Running docker integration test containers while dev containers running
  • Docker not getting installed in ubuntu14.04
  • Any way to remove docker container and image automatically even after unsuccessful build?
  • Docker Machine Virtual Box Driver Issue
  • Docker compose version 2 volumes not using specified location
  • Docker - how to automatically POST a request on a REST container after launch?
  • Gitlab Continuous Integration on Docker
  • 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.