When I run the command kubectl get pods | grep "apisix"
, I get the following data
apisix-dev-78549978b7-pvh2v 1/1 Running 6 (4m19s ago) 8m14s
apisix-dev-dashboard-646df79bf-mwkpc 1/1 Running 6 (4m35s ago) 8m12s
apisix-dev-etcd-0 1/1 Running 0 8m12s
apisix-dev-etcd-1 1/1 Running 0 8m11s
apisix-dev-etcd-2 0/1 CrashLoopBackOff 4 (24s ago) 8m11s
apisix-dev-ingress-controller-58f7887759-28cm9 1/1 Running 0 8m11s
apisix-dev-ingress-controller-6cc65c7cb5-k6dx2 0/1 Init:0/1 0 8m9s
Is there any way to delete all the pods containing the word apisix
instead of mentioning every pod name in kubectl delete command?
CodePudding user response:
You can run a simple command:
kubectl delete pod $(kubectl get pod | grep apisix | awk '{print $1}')
CodePudding user response:
A common way to select (and then, maybe delete) a set of Pods is via selector
labels.
For example, assuming that a proper label app
with value apisix
exists:
# Find which Pods are selected (just to be sure)
kubectl get pod --selector=app=apisix
# Delete them (probably with --dry-run=client, if still unsure about what is selected)
kubectl delete pod --selector=app=apisix