回答:
要求したとおりに実行するコマンドはありません。
ここにいくつかの近い一致があります。
次のコマンドを使用して、単一の名前空間内のすべてのポッドを削除できます。
kubectl delete --all pods --namespace=foo
名前空間のすべてのデプロイメントを削除することもできます。これにより、名前空間に対応するデプロイメントに接続されているすべてのポッドが削除されます。
kubectl delete --all deployments --namespace=foo
次のコマンドを使用して、すべてのネームスペースとすべてのネームスペース内のすべてのオブジェクトを削除できます(ただし、ノードや一部のイベントなどの非ネームスペースオブジェクトは削除できません)。
kubectl delete --all namespaces
ただし、後者のコマンドはkube-system名前空間の内容を削除してクラスターを使用できなくするため、おそらく実行したくないものです。
このコマンドは、kube-systemを除くすべての名前空間を削除します。これは便利な場合があります。
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
時々動作するように見えます(ある環境で動作する原因と他の環境では動作しない原因は不明)それは私の要塞ホストからはうまく機能しますが、ラップトップからは機能しません。両方ともdebianを実行しており、両方とも同じバージョンの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
を表す最初の2つの単語をフェッチし、次に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
1つ目all
は、一般的なリソースの種類(ポッド、レプリカセット、デプロイメントなど)を意味します
kubectl get all == kubectl get pods,rs,deployments, ...
2番目の--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
名前空間のすべてを削除するPythonコードを作成します
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