जवाबों:
आपके द्वारा पूछे गए कार्यों को करने की कोई आज्ञा नहीं है।
यहाँ कुछ करीबी मैच हैं।
आप इस आदेश के साथ एक एकल नाम स्थान में सभी पॉड्स को हटा सकते हैं:
kubectl delete --all pods --namespace=foo
आप नेमस्पेस में सभी तैनाती को भी हटा सकते हैं जो नेमस्पेस के अनुरूप तैनाती से जुड़ी सभी पॉड्स को हटा देगा
kubectl delete --all deployments --namespace=foo
आप इस कमांड के साथ हर नामस्थान (लेकिन गैर-नामांकित ऑब्जेक्ट्स, जैसे नोड्स और कुछ ईवेंट) में सभी नामस्थान और हर ऑब्जेक्ट को हटा सकते हैं:
kubectl delete --all namespaces
हालाँकि, बाद की कमान संभवतः कुछ ऐसा नहीं है जिसे आप करना चाहते हैं, क्योंकि यह क्यूब-सिस्टम नेमस्पेस में चीजों को हटा देगा, जो आपके क्लस्टर को उपयोग करने योग्य नहीं बना देगा।
यह कमांड क्यूब-सिस्टम को छोड़कर सभी नामस्थानों को हटा देगा, जो उपयोगी हो सकते हैं:
for each in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}" | grep -v kube-system);
do
kubectl delete ns $each
done
kubectl delete pods --all --all-namespacesकभी-कभी काम करने लगता है (यह निश्चित नहीं है कि यह कुछ वातावरणों में काम करने का कारण बनता है और दूसरों में नहीं)। यह मेरे गढ़ होस्ट से अच्छी तरह से काम करता है लेकिन लैपटॉप से नहीं। दोनों चल रहे डेबियन और दोनों एक ही संस्करण kubectl के संस्करण (क्लस्टर संस्करण 1.13)
kube-systemनामस्थान में हैं। संदेश के उदाहरण में, मैं defaultनामस्थान देख सकता हूं । है kube-systemआदेश आप संलग्न के साथ नष्ट कर दिया?
kubectl delete daemonsets,replicasets,services,deployments,pods,rc --all
उनसे छुटकारा पाने के लिए पेसकी प्रतिकृति नियंत्रक भी।
ing इनग्रेसेज़ को भी
आपको बस यह sedकरने की आवश्यकता है:
kubectl get pods --no-headers=true --all-namespaces |sed -r 's/(\S+)\s+(\S+).*/kubectl --namespace \1 delete pod \2/e'
बताते हैं:
kubectl get pods --all-namespacesसभी नामस्थानों में सभी पॉड्स की सूची प्राप्त करने के लिए का ।--no-headers=trueहेडर छिपाने के विकल्प का ।sके sedलिए कमांड का उपयोग करें, जो क्रमशः प्रतिनिधित्व करते हैं namespaceऔर pod's nameफिर इकट्ठा होते हैंdelete उनका उपयोग करके कमांड को करते हैं।deleteआदेश अभी की तरह है:
kubectl --namespace kube-system delete pod heapster-eq3yw।esऊपर इकट्ठे कमांड को निष्पादित करने के लिए कमांड संशोधक का , जो वास्तविक deleteकाम करेगा।kube-systemनेमस्पेस में पॉड्स को हटाने से बचने के लिए , कमांड से पहले नेमस्पेस grep -v kube-systemको बाहर करने की जरूरत है ।kube-systemsed
--all-namespacesअगर आप kube-systemनाम स्थान में फली को नष्ट नहीं करना चाहते हैं
आप बस चला सकते हैं
kubectl delete all --all --all-namespaces
पहले का allमतलब है आम संसाधन प्रकार (फली, प्रतिकृतियां, परिनियोजन, ...)
kubectl get all == kubectl get pods,rs,deployments, ...दूसरे का --allमतलब चयनित प्रकार के सभी संसाधनों का चयन करना है
ध्यान दें कि allइसमें शामिल नहीं हैं:
पूरी तरह से साफ करने के लिए,
यहां एक-लाइनर है जिसे नाम से फ़िल्टर करने के लिए grep के साथ बढ़ाया जा सकता है।
kubectl get pods -o jsonpath="{.items[*].metadata.name}" | \
tr " " "\n" | \
xargs -i -P 0 kubectl delete pods {}
kubectl delete po,ing,svc,pv,pvc,sc,ep,rc,deploy,replicaset,daemonset --all -A
यदि आपके पास पहले से ही पॉड्स हैं जो फिर से बनाए गए हैं, तो पहले सभी तैनाती को हटाने के बारे में सोचें
kubectl delete -n *NAMESPACE deployment *DEPLOYMENT
केवल NAMSPACE और DEPLOYMENT को संबंधित लोगों को बदलें, आप निम्नलिखित कमांड द्वारा सभी तैनाती जानकारी प्राप्त कर सकते हैं
kubectl get deployments --all-namespaces
Kubectl बल्क (krew पर बल्क-एक्शन) प्लगइन आपके लिए उपयोगी हो सकता है, यह आपको चयनित संसाधनों पर बल्क ऑपरेशन देता है। यह फली हटाने की आज्ञा है
' kubectl bulk pods -n namespace delete '
आप में विवरण की जाँच कर सकता है यह
मैं नामस्थान में सभी को हटाने के लिए एक पायथन कोड बनाता हूं
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")
और फिर
kubectl get all -n kong -o json | python delall.py
K8s पूरी तरह से नाम स्थान के मूल पर काम करता है। यदि आप निर्दिष्ट नाम स्थान से संबंधित सभी संसाधन जारी करना चाहते हैं।
आप नीचे वर्णित का उपयोग कर सकते हैं:
kubectl नेमस्पेस k8sdemo-app हटाएं