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