Launching jobs
Hue has evolved and has a lot of long-running processes deployed as microservices, but it also has a lot of tasks that run, accomplish some goal, and exit. Kubernetes supports this functionality via the Job resource. A Kubernetes job manages one or more pods and ensures that they run until they are successful. If one of the pods managed by the job fails or is deleted, then the job will run a new pod until it succeeds.
There are also many serverless or function-as-a-service solutions for Kubernetes, but they are built on top of native Kubernetes. We will dedicate a whole chapter to serverless computing.
Here is a job that runs a Python process to compute the factorial of 5 (hint: it's 120):
apiVersion: batch/v1
kind: Job
metadata:
name: factorial5
spec:
template:
metadata:
name: factorial5
spec:
containers:
- name: factorial5
image: g1g1/py-kube:0.2
command: ["python",
"-c...