Scale down Kubernetes pods

11/30/2017

I am using

kubectl scale --replicas=0 -f deployment.yaml

to stop all my running pods. Please let me know if there are better ways to bring down all running pods to Zero keeping configuration, deployments etc.. intact, so that I can scale up later as required.

-- PPK
kubernetes

6 Answers

9/17/2019

If you need more granularity with pipes or grep, here is another shell solution:

for i in $(kubectl get deployments | grep -v NAME | grep -v app | awk '{print $1}'); do kubectl scale --replicas=2 deploy $i; done
-- akahuna
Source: StackOverflow

12/2/2017

You are doing the correct action; traditionally the scale verb is applied just to the resource name, as in kubectl scale deploy my-awesome-deployment --replicas=0, which removes the need to always point at the specific file that describes that deployment, but there's nothing wrong (that I know of) with using the file if that is more convenient for you.

-- mdaniel
Source: StackOverflow

3/15/2019

Here we go. Scales down all deployments in a whole namespace:

kubectl get deploy -n <namespace> -o name | xargs -I % kubectl scale % --replicas=0 -n <namespace>

To scale up set --replicas=1 (or any other required number) accordingly

-- R0MARI0
Source: StackOverflow

6/10/2019

If you want generic patch:

namespace=devops-ci-dev
kubectl get deployment -n ${namespace} --no-headers| awk '{print $1}' | xargs -I elhay kubectl patch deployment -n ${namespace} -p '{"spec": {"replicas": 1}}' elhay 

Change namespace=devops-ci-dev, to be your name space.

-- elhay efrat
Source: StackOverflow

12/30/2019
  kubectl get deployments
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
app-gke   3/3     3            3           13m

  kubectl scale deploy app-gke --replicas=5
deployment.extensions/app-gke scaled


kubectl get pods
NAME                       READY   STATUS              RESTARTS   AGE
app-gke-7b768cd6d7-b25px   2/2     Running             0          11m
app-gke-7b768cd6d7-glj5v   0/2     ContainerCreating   0          4s
app-gke-7b768cd6d7-jdt6l   2/2     Running             0          11m
app-gke-7b768cd6d7-ktx87   2/2     Running             0          11m
app-gke-7b768cd6d7-qxpgl   0/2     ContainerCreating   0          4s

enter image description here

-- Tiago Medici
Source: StackOverflow

5/7/2020

The solution is pretty easy and straightforward

kubectl scale deploy -n <namespace> --replicas=0 --all 
-- Vivek Raveendran
Source: StackOverflow