Setelah melihat dokumen, ada panggilan API untuk menghapus pod 'a', tetapi apakah ada cara untuk membunuh semua pod di semua ruang nama?
sumber
Setelah melihat dokumen, ada panggilan API untuk menghapus pod 'a', tetapi apakah ada cara untuk membunuh semua pod di semua ruang nama?
Tidak ada perintah untuk melakukan persis apa yang Anda minta.
Inilah beberapa pertandingan dekat.
Anda dapat menghapus semua pod dalam satu namespace dengan perintah ini:
kubectl delete --all pods --namespace=foo
Anda juga dapat menghapus semua penyebaran di namespace yang akan menghapus semua pod yang terpasang dengan penyebaran yang sesuai dengan namespace
kubectl delete --all deployments --namespace=foo
Anda dapat menghapus semua namespace dan setiap objek di setiap namespace (tetapi bukan objek yang tidak di-namespace, seperti node dan beberapa peristiwa) dengan perintah ini:
kubectl delete --all namespaces
Namun, perintah yang terakhir mungkin bukan sesuatu yang ingin Anda lakukan, karena itu akan menghapus hal-hal di namespace sistem kubus, yang akan membuat cluster Anda tidak dapat digunakan.
Perintah ini akan menghapus semua namespace kecuali kube-system, yang mungkin berguna:
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
tampaknya bekerja kadang-kadang (tidak yakin apa yang menyebabkannya bekerja di beberapa lingkungan dan tidak di tempat lain). Ini bekerja dengan baik dari tuan rumah benteng saya tetapi tidak dari laptop. Keduanya menjalankan debian dan keduanya menjalankan versi kubectl yang sama (versi cluster 1.13)kube-system
namespace. Dalam contoh pesan, saya bisa melihatdefault
namespace. Apakahkube-system
dihapus dengan perintah yang Anda lampirkan?untuk menyingkirkan mereka pengontrol replikasi sial juga.
sumber
ing
dapat menghapus ingressesAnda hanya perlu
sed
melakukan ini:Menjelaskan:
kubectl get pods --all-namespaces
untuk mendapatkan daftar semua pod di semua ruang nama.--no-headers=true
opsi untuk menyembunyikan header.s
perintahsed
untuk mengambil dua kata pertama, yang mewakilinamespace
danpod's name
masing - masing, kemudian kumpulkandelete
perintah menggunakan mereka.delete
perintah seperti:kubectl --namespace kube-system delete pod heapster-eq3yw
.e
pengubahs
perintah untuk menjalankan perintah yang dirakit di atas, yang akan melakukandelete
pekerjaan yang sebenarnya .Untuk menghindari menghapus pod di
kube-system
namespace, hanya perlu menambahkangrep -v kube-system
untuk mengecualikankube-system
namespace sebelumsed
perintah.sumber
--all-namespaces
jika Anda tidak ingin menghapus pod dikube-system
namespaceAnda cukup berlari
Yang pertama
all
berarti jenis sumber daya umum (pod, replika, penyebaran, ...)kubectl get all == kubectl get pods,rs,deployments, ...
Yang kedua
--all
berarti memilih semua sumber daya dari jenis yang dipilihCatatan yang
all
tidak termasuk:Untuk membersihkan dengan sempurna,
sumber
Berikut ini adalah satu-liner yang dapat diperpanjang dengan grep untuk memfilter berdasarkan nama.
sumber
sumber
Jika Anda sudah memiliki pod yang dibuat ulang, pikirkan untuk menghapus semua penyebaran terlebih dahulu
Cukup ganti NAMSPACE dan DEPLOYMENT dengan yang sesuai, Anda bisa mendapatkan semua informasi penyebaran dengan perintah berikut
sumber
Plugin Kubectl bulk (bulk-action on krew) mungkin berguna bagi Anda, itu memberi Anda operasi massal pada sumber daya yang dipilih. Ini adalah perintah untuk menghapus pod
Anda dapat memeriksa detailnya di ini
sumber
Saya membuat kode python untuk menghapus semua di namespace
delall.py
lalu
sumber
K8s sepenuhnya bekerja pada dasar namespace. jika Anda ingin melepaskan semua sumber daya yang terkait dengan namespace yang ditentukan.
Anda dapat menggunakan yang disebutkan di bawah ini:
kubectl menghapus namespace k8sdemo-app
sumber