Bobcares

How to Restart Kubernetes Pods With Kubectl

by | Mar 10, 2025

Learn how to restart Kubernetes Pods With Kubectl. Our Kubernetes Support team is here to help you with your questions and concerns.

How to Restart Kubernetes Pods With Kubectl

How to Restart Kubernetes Pods With KubectlDid you know pods don’t always terminate when an application fails in Kubernetes? Although there are no direct `kubectl restart pod` command, there are multiple ways to restart pods using `kubectl`.

Today, we will examine pod statuses, why restarts are necessary, and five effective methods for restarting pods.

Different Pod Statuses in Kubernetes

A pod in Kubernetes can be in one of five states:

  • Pending: At least one container has not yet been created.
  • Running: All containers are created, and the pod is bound to a Node. Containers are running or in the process of starting or restarting.
  • Succeeded: All containers have terminated successfully and will not restart.
  • Failed: All containers have terminated, with at least one container failing (non-zero exit code).
  • Unknown: The pod status cannot be determined.

If a pod gets stuck in an error state, like CrashLoopBackOff, it means Kubernetes is repeatedly trying to restart the pod but failing. When this happens, we must carry out a manual pod restart.

How to Restart Pods in Kubernetes

Our Experts have put together five methods to restart pods using `kubectl`. Remember that restarting pods will create new pods with different names.

Method 1: Rollout Restart

A rollout restart is the safest and most efficient way to restart pods, as it gradually replaces pods without causing downtime (available from Kubernetes v1.15).

kubectl rollout restart deployment <deployment_name> -n <namespace>
Copy Code

This command terminates pods and recreates them one by one. This method works well in production environments where uptime is critical.

Method 2: Scale Down and Up (Risk of Downtime)

If downtime is acceptable, scaling pods to zero and backup is a simple option.

We can scale down to zero replicas (delete all pods) with this command:

kubectl scale deployment deployment_name -n namespace –replicas=0Copy Code

To scale back up to the desired number of replicas with this command:

kubectl scale deployment deployment_name -n namespace –replicas=3Copy Code

To check pod status during scaling, run:

kubectl get pods -n namespaceCopy Code

In this method, all pods are terminated simultaneously, causing downtime. It works well in development or testing environments.

Method 3: Delete Pod or ReplicaSet

Deleting a pod will trigger Kubernetes to recreate it automatically.

To delete a single pod, run:

kubectl delete pod pod_name -n namespaceCopy Code

Or, to delete multiple pods by label, run:

kubectl delete pod -l "app=myapp" -n namespaceCopy Code

If there are lots of pods, we can delete the ReplicaSet:

kubectl delete replicaset replicaset_name -n namespaceCopy Code

Method 4: Force Replace Pods

We can force Kubernetes to restart pods by fetching their YAML and using `kubectl replace`.

kubectl get pod pod_name -n  -o yaml | kubectl replace --force -f -Copy Code

Here, the pod is deleted and recreated with the same configuration. This method works well if we can’t access the original YAML file.

Method 5: Restart via Environment Variable Update

Modifying a pod’s environment variable triggers a restart. A simple trick is to update a timestamp.

kubectl set env deployment deployment_name -n namespace DEPLOY_DATE="$(date)"
Copy Code

Here, Kubernetes restarts pods to apply the new environment variable.

It works well in CI/CD pipelines where we want to trigger restarts without changing pod configuration.

[Need assistance with a different issue? Our team is available 24/7.]

Conclusion

While Kubernetes doesn’t have a direct `kubectl restart pod` command, the above methods let us restart pods depending on our needs.

In brief, our Support Experts demonstrated how to restart Kubernetes Pods With Kubectl.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Speed issues driving customers away?
We’ve got your back!