
Ich habe einen K3s-Cluster mit kube-system
Pods und den Pods meiner Anwendung ( xyz-system
Namespace):
kube-system pod/calico-node-xxxx
kube-system pod/calico-kube-controllers-xxxxxx
kube-system pod/metrics-server-xxxxx
kube-system pod/local-path-provisioner-xxxxx
kube-system pod/coredns-xxxxx
xyz-system pod/my-app
xyz-system pod/my-app-mqtt
Ich möchte alle diese Pods (Kube-System + XYZ-System) mit einem Befehl (oder es können zwei Befehle für zwei Namespaces sein, aber ohne Bereitstellungsnamen) zurücksetzen/neu starten, ohne Bereitstellungsnamen anzugeben, da ich in Zukunft möglicherweise weitere Bereitstellungen erstellen lasse und es daher schwierig sein wird, viele Bereitstellungsnamen manuell anzugeben.
Debuggen:
Mit dem Befehl kubectl -n kube-system rollout restart daemonsets,deployments
wie inVerknüpfungIch kann die kube-system
Pods neu starten. Aber wenn ich diesen Befehl mit änder xyz-namespace
: kubectl -n xyz-system rollout restart deployments
werden die entsprechenden Pods nicht neu gestartet, wenn ich watch kubectl get all -A
sie überwache, sondern bleiben im Status „Ausführen“.
Kann mir jemand sagen, wie das geht?
Antwort1
In zwei Befehlen:
kubectl delete pod -n kube-system --all
kubectl delete pod -n xyz-system --all
In Eins":
kubectl get pods -A | awk 'NR>1{print $1" "$2}' \
| while read ns pod; do \
kubectl delete -n $ns pod $pod; done
Oder:
kubectl get ns | awk 'NR>1{print $1}' \
| while read ns; do \
kubectl delete pod -n $ns --all; done
Ich stimme jedoch dem Kommentar von @jonas zu: Das klingt nach einer seltsamen Frage, für die mir keine Anwendungsfälle aus dem wirklichen Leben bekannt sind.