
kube-system
Pod와 내 애플리케이션의( xyz-system
네임스페이스) Pod 가 있는 k3s 클러스터가 있습니다 .
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 댓글은 제가 아는 실제 사용 사례가 없는 이상한 질문처럼 들립니다.