Update a Deployment image in Kubernetes
Use the following functionality if you have atleast a 1.15 version
kubectl rollout restart deployment/deployment-name
Read more about it here kubectl rollout restart
when not changing the container image name or tag you would just scale your application to 0 and back to the original size with sth like:
kubectl scale --replicas=0 deployment application
kubectl scale --replicas=1 deployment application
As mentioned in the comments already ImagePullPolicy: Always
is then required in your configuration.
When changing the image I found this to be the most straight forward way to update the
kubectl set image deployment/application app-container=$IMAGE
Not changing the image has the downsite that you'll have nothing to fall back to in case of problems. Therefore I'd not suggest to use this outside of a development environment.
Edit: small bonus - keeping the scale in sync before and after could look sth. like:
replica_spec=$(kubectl get deployment/applicatiom -o jsonpath='{.spec.replicas}')
kubectl scale --replicas=0 deployment application
kubectl scale --replicas=$replica_spec deployment application
Cheers