カスタム名前空間ポッドを再起動またはリセットするにはどうすればいいですか

カスタム名前空間ポッドを再起動またはリセットするにはどうすればいいですか

kube-systemポッドとアプリケーションの (xyz-system名前空間) ポッドを含む 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) を 1 つのコマンド (または、デプロイメント名なしで 2 つの名前空間に対して 2 つのコマンド) でリセット/再起動します。そのため、多くのデプロイメント名を手動で指定することが困難になります。

デバッグ:
kubectl -n kube-system rollout restart daemonsets,deployments前述の コマンド でリンクポッドを再起動できますkube-system。ただし、このコマンドを次のように変更するとxyz-namespacekubectl -n xyz-system rollout restart deploymentsそれぞれのポッドは再起動されず、監視時にwatch kubectl get all -A実行状態のままになります。

これを実現する方法を誰か教えてもらえますか?

答え1

2 つのコマンドで:

kubectl delete pod -n kube-system --all
kubectl delete pod -n xyz-system --all

「1」の場合:

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 のコメントに賛成します。奇妙な質問のように思えますが、私が知る限り、実際の使用例はありません。

関連情報