Upon looking at the docs, there is an API call to delete 'a' pod, but is there a way to kill all pods in all namespaces?
This question is related to
kubernetes
Kubectl bulk (bulk-action on krew) plugin may be useful for you, it gives you bulk operations on selected resources. This is the command for deleting pods
' kubectl bulk pods -n namespace delete '
You could check details in this
I tried commands from listed answers here but pods were stuck in terminating state.
I found below command to delete all pods from particular namespace if stuck in terminating state or you are not able to delete it then you can delete pods forcefully.
kubectl delete pods --all --grace-period=0 --force --namespace namespace
Hope it might be useful to someone.
Here is a one-liner that can be extended with grep to filter by name.
kubectl get pods -o jsonpath="{.items[*].metadata.name}" | \
tr " " "\n" | \
xargs -i -P 0 kubectl delete pods {}
If you already have pods which are recreated, think to delete all deployments first
kubectl delete -n *NAMESPACE deployment *DEPLOYMENT
Just replace the NAMSPACE and the DEPLOYMENT to corresponding ones, you can get all deployments information by the following command
kubectl get deployments --all-namespaces
Delete all PODs in all Namespace only (restart deployment)
kubectl get pod -A -o yaml | kubectl delete -f -
kubectl delete daemonsets,replicasets,services,deployments,pods,rc --all
to get rid of them pesky replication controllers too.
kubectl delete po,ing,svc,pv,pvc,sc,ep,rc,deploy,replicaset,daemonset --all -A
You can simply run
kubectl delete all --all --all-namespaces
The first all
means the common resource kinds (pods, replicasets, deployments, ...)
kubectl get all == kubectl get pods,rs,deployments, ...
The second --all
means to select all resources of the selected kinds
Note that all
does not include:
In order to clean up perfectly,
K8s completely works on the fundamental of the namespace. if you like to release all the resource related to specified namespace.
you can use the below mentioned :
kubectl delete namespace k8sdemo-app
You just need sed
to do this:
kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(\S+)\s+(\S+).*/kubectl --namespace \1 delete pod \2/e'
Explains:
kubectl get pods --all-namespaces
to get the list of all pods in all namespaces.--no-headers=true
option to hide the headers.s
command of sed
to fetch the first two words, which represent namespace
and pod's name
respectively, then assemble the delete
command using them. delete
command is just like:
kubectl --namespace kube-system delete pod heapster-eq3yw
.e
modifier of s
command to execute the command assembled above, which will do the actual delete
works.To avoid delete pods in kube-system
namespace, just need to add grep -v kube-system
to exclude kube-system
namespace before the sed
command.
You can use kubectl delete pods -l dev-lead!=carisa
or what label you have.
I create a python code to delete all in namespace
delall.py
import json,sys,os;
obj=json.load(sys.stdin);
for item in obj["items"]:
os.system("kubectl delete " + item["kind"] + "/" +item["metadata"]["name"] + " -n yournamespace")
and then
kubectl get all -n kong -o json | python delall.py
Source: Stackoverflow.com