openshift

How to restart pod in OpenShift?


I updated a file (for debug output) in a running pod, but it isn't getting recognized. I was going to restart the pod to get it to take but I only see oc stop and not oc start or oc restart. How would I force a refresh of files in the pod?

I am thinking maybe it is a Ruby thing (like opcache in PHP). But figured a restart of the pod would handle it. Just can't figure out how to restart a pod.


Solution

  • 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.