If you will check result of kubectl describe pod tensorflow-**********-*****
, you will see that last state was Terminated
with Exit Code 0
, that literally means you container was launched successfully, did it job and finished also successfully.
IN addition, there is a restartPolicy: Always
turned on by default for deployments and you cant set restartPolicy: Never
. More info here: deployments do not support (honor) container restartPolicy
Always means that the container will be restarted even if it exited with a zero exit code (i.e. successfully) - thats why you see restarts and CrashLoopBackOff's.
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Completed
Exit Code: 0
Started: Thu, 29 Apr 2021 23:44:03 +0000
Finished: Thu, 29 Apr 2021 23:44:03 +0000
Ready: False
Restart Count: 2
You can add any type of infinite loop in deployment to let NOT your tensorflow pod finish, e.g
apiVersion: apps/v1
kind: Deployment
metadata:
name: tensorflow
labels:
app: tensorflow
spec:
replicas: 1
selector:
matchLabels:
app: tensorflow
template:
metadata:
labels:
app: tensorflow
spec:
containers:
- name: tensorflow
image: tensorflow/tensorflow:latest
ports:
- containerPort: 8888
command: ["/bin/sh", "-ec", "while :; do echo '.'; sleep 5 ; done"]
result:
kubectl get pod tensorflow-788846c588-p64rl
NAME READY STATUS RESTARTS AGE
tensorflow-788846c588-p64rl 1/1 Running 0 4m23s