উত্তর:
আপনি যা বলেছিলেন ঠিক তেমন করার কোনও আদেশ নেই।
এখানে কয়েকটি ঘনিষ্ঠ মিল রয়েছে।
আপনি এই কমান্ডের সাহায্যে একক নেমস্পেসে সমস্ত শুঁটি মুছতে পারেন:
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
কখনও কখনও কাজ করে বলে মনে হয় (এটি কিছু পরিবেশে কাজ করার কারণ এবং অন্যদের মধ্যে নয়) নিশ্চিত নয়। এটি আমার ঘাঁটি হোস্ট থেকে ভাল কাজ করে তবে ল্যাপটপ থেকে নয়। উভয়ই চলমান দেবিয়ান এবং উভয়ই কুবেক্টেলের একই সংস্করণ (ক্লাস্টার সংস্করণ 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
এতে অন্তর্ভুক্ত নেই:
পুরোপুরি পরিষ্কার করার জন্য,
এখানে একটি ওয়ান-লাইনার যা নাম অনুসারে ফিল্টার করার জন্য গ্রেপ দিয়ে বাড়ানো যেতে পারে।
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 এবং সংশ্লিষ্ট ব্যক্তিকে ডিপ্লোয়মেন্টটি প্রতিস্থাপন করুন, আপনি নিম্নলিখিত কমান্ডের মাধ্যমে সমস্ত মোতায়েনের তথ্য পেতে পারেন
kubectl get deployments --all-namespaces
কুবেক্টল বাল্ক (ক্রুতে বাল্ক-অ্যাকশন) প্লাগইন আপনার জন্য কার্যকর হতে পারে, এটি আপনাকে নির্বাচিত সংস্থাগুলিতে বাল্ক ক্রিয়াকলাপ দেয়। এটি শুঁটি মুছে ফেলার জন্য আদেশ
' 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
কে 8 এস সম্পূর্ণরূপে নেমস্পেসের মৌলিক উপর কাজ করে। আপনি যদি নির্দিষ্ট নামের জায়গার সাথে সম্পর্কিত সমস্ত সংস্থান প্রকাশ করতে চান।
আপনি নীচে উল্লিখিত ব্যবহার করতে পারেন:
kubectl মুছে ফেলুন নেমস্পেস k8sdemo- অ্যাপ্লিকেশন