
У меня есть кластер k3s с kube-system
модулями и модулями моего приложения ( xyz-system
пространство имен):
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
Я хочу сбросить/перезапустить все эти модули (kube-system + xyz-system) одной командой (или это могут быть две команды для двух пространств имен, но без имени развертывания), не указывая имен развертываний, поскольку в будущем у меня может быть создано больше развертываний, и будет сложно указать много имен развертываний вручную.
Отладка:
С командой kubectl -n kube-system rollout restart daemonsets,deployments
, как указано всвязьЯ могу перезапустить kube-system
модули. Но когда я изменяю эту команду с помощью xyz-namespace
: kubectl -n xyz-system rollout restart deployments
соответствующие модули не перезапускаются, когда я отслеживаю, watch kubectl get all -A
они остаются в состоянии выполнения.
Может ли кто-нибудь подсказать мне, как этого добиться?
решение1
В двух командах:
kubectl delete pod -n kube-system --all
kubectl delete pod -n xyz-system --all
В одной":
kubectl get pods -A | awk 'NR>1{print $1" "$2}' \
| while read ns pod; do \
kubectl delete -n $ns pod $pod; done
Или:
kubectl get ns | awk 'NR>1{print $1}' \
| while read ns; do \
kubectl delete pod -n $ns --all; done
Хотя я поддерживаю комментарий @jonas: звучит как странный вопрос, не имея известных мне примеров его реального использования.