有没有一种方便的方法可以将多个kubectl命令相互传输



我正在寻找一种方法来做类似的事情

kubectl get pods -l app=foo | kubectl delete

我认为这是一个同时处理多个资源的好方法,但我找不到一个相当简单的方法。

您可以使用命令替换:

Kubectl delete $(kubectl get pod -l app=foo -o name)

kubectl get -o name将以kind/name格式写出资源名称,一行一个。您可以将其与xargs(1(等工具结合使用,以运行您建议的管道。

kubectl get job -l app=foo -o name | xargs kubectl delete
# help we're using the long-format label names and I don't remember
# what goes after `kubectl get -l`
kubectl get job -o name | grep foo | xargs kubectl delete

对于您显示的非常具体的命令,我经常发现使用kubectl rollout restart来触发部署的重新部署序列更容易,而无需实际进行任何更改。这将删除Deployment管理的所有pod,但仅在首先创建新pod之后;因此,您可以重新启动行为不端的Pods,但不会真正关闭整个应用程序。

kubectl rollout restart deployment/foo

相关内容

  • 没有找到相关文章

最新更新