जवाबों:
आपके द्वारा पूछे गए कार्यों को करने की कोई आज्ञा नहीं है।
यहाँ कुछ करीबी मैच हैं।
आप इस आदेश के साथ एक एकल नाम स्थान में सभी पॉड्स को हटा सकते हैं:
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
।e
s
ऊपर इकट्ठे कमांड को निष्पादित करने के लिए कमांड संशोधक का , जो वास्तविक delete
काम करेगा।kube-system
नेमस्पेस में पॉड्स को हटाने से बचने के लिए , कमांड से पहले नेमस्पेस grep -v kube-system
को बाहर करने की जरूरत है ।kube-system
sed
--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 हटाएं