사용자 정의 네임스페이스 Pod를 다시 시작하거나 재설정하려면 어떻게 해야 하나요?

사용자 정의 네임스페이스 Pod를 다시 시작하거나 재설정하려면 어떻게 해야 하나요?

kube-systemPod와 내 애플리케이션의( 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 댓글은 제가 아는 실제 사용 사례가 없는 이상한 질문처럼 들립니다.

관련 정보