如何重启或重置自定义命名空间 pod

如何重启或重置自定义命名空间 pod

我有一个带有 pod 的 k3s 集群kube-system和我的应用程序(xyz-system命名空间)pod:

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

我想通过一个命令重置/重新启动所有这些 pod(kube-system + xyz-system)(或者可以是两个命名空间的两个命令,但没有部署名称),而不提供部署名称,因为将来我可以创建更多部署,因此手动提供许多部署名称会很困难。

调试:
使用 kubectl -n kube-system rollout restart daemonsets,deployments命令关联我可以重新启动kube-systemPod。但是当我用 修改此命令时xyz-namespacekubectl -n xyz-system rollout restart deployments当我监控时,相应的 Pod 不会重新启动,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 的评论:这听起来像是一个奇怪的问题,据我所知没有实际用例。

相关内容