<aside> ⛔
Sometimes we need to have a helper container for the application container. In that case, we can run both containers inside the same pod. This way both containers share the same storage and network and can reference each other as localhost
Without using Pods, making a setup like this would be difficult as we need to manage attaching the helper containers to the application containers and kill them if the application container goes down.
Although, most use cases of pods revolve around single containers, it provides flexibility to add a helper container in the future as the application evolves.
</aside>
apiVersion: v1
kind: Pod
metadata:
labels:
name: frontend
spec:
containers:
- name: httpd
image: httpd:2.4-alpine
The default behavior of K8s is to restart a pod if it terminates. This is desirable for long running containers like web applications or databases. But, this is not desirable for short-lived containers such as a container to process an image or run analytics.
restartPolicy
allows us to specify when K8s should restart the pod.
Always
- restart the pod if it goes down (default)Never
- never restart the podOnFailure
- restart the pod only if the container inside failed (returned non zero exit code after execution)apiVersion: v1
kind: Pod
metadata:
labels:
name: analytics
spec:
containers:
- name: analytics
image: analytics
restartPolicy: Never