我有一个带有 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-system
Pod。但是当我用 修改此命令时xyz-namespace
:kubectl -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 的评论:这听起来像是一个奇怪的问题,据我所知没有实际用例。