How to restart pod in OpenShift?

You can scale deployments down (to zero) and then up again:

oc get deployments -n <your project> -o wide

oc get pods -n <your project> -o wide

oc scale --replicas=0 deployment/<your deployment> -n <your project>

oc scale --replicas=1 deployment/<your deployment> -n <your project>

watch oc get pods -n <your project> # wait until your deployment is up again

Thanks Noam Manos for your solution.

I've used "Application Console" in Openshift. I've navigated to Applications - Deployment - #3 (check for your active deployment) to see my pod with up and down arrows. Currently, I've 1 pod running. So, I've clicked on down arrow to scale down to 0 pod. Then, I clicked on up arrow to scale up to 1 pod.


You need to do your changes in the deployment config but not in the pod. Because OpenShift treats pods as largely immutable; changes cannot be made to a pod definition while it is running. https://docs.openshift.com/enterprise/3.0/architecture/core_concepts/pods_and_services.html#pods

If you make some changes in deployment config and save them, pod will restart and and your changes will take effect:

oc edit dc "deploy-config-example"

If you change something in volumes or configmaps you need to delete pod for his restart:

oc delete pod "name-of-your-pod"

And pod will restart. Or better still trigger a new deployment by running:

oc rollout latest "deploy-config-example"

Using oc rollout is better because it will re-deploy all pods if you have a scaled application, and you don't need to identify each pod and delete it.

Tags:

Openshift