当我使用下面的命令时,它会在匹配命令行中的模式后删除正在运行的POD:
kubectl get pods -n bi-dev --no-headers=true | awk '/group-react/{print $1}' | xargs kubectl delete -n bi-dev pod但是,当我在.bash_profile中使用此命令作为别名时,它不会执行。我是这样定义它的:
alias kdpgroup="kubectl get pods -n bi-dev --no-headers=true | awk '/group-react/{print $1}'| kubectl delete -n bi-dev pod"如下所示执行此命令时,我在命令行中得到以下错误:
~ $ kdpgroup
error: resource(s) were provided, but no name, label selector, or --all flag specified当我在.bash_profile中定义它时,我得到这样的结果:
~ $ . ./.bash_profile
-bash: alias: }| xargs kubectl delete -n bi-dev pod: not found
~ $我是不是遗漏了用Pattern Match或Wilcard删除POD的东西?
谢谢
发布于 2019-12-27 19:07:36
使用模式匹配或使用通配符删除POD时,我是否遗漏了什么?
在使用Kubernetes时,更常见的是使用标签和选择器。例如,如果你部署了一个应用程序,你通常会在pods上设置一个标签,比如app=my-app,然后你就可以用kubectl get pods -l app=my-app来获取pods。
使用此方法可以更容易地删除您感兴趣的pod,例如
kubectl delete pods -l app=my-app或者使用命名空间
kubectl delete pods -l app=my-app -n default在Kubernetes Labels and Selectors上查看更多信息
基于集合的选择器
我有一些pod正在运行,名为" superset -react“和"superset-graphql”,我想搜索我的通配符超集并在一个命令中删除这两个超集
我建议这些pods有标签app=something-react和app=something-graphql。如果你想对这些应用程序进行分类,例如,如果你的“超集”不同,你可以为所有这些类型的应用程序添加一个标签app-type=react和app-type=graphql。
然后,您可以使用以下命令删除这两种应用类型的pod:
kubectl delete pods -l 'app-type in (react, graphql)'发布于 2021-05-14 23:04:48
正如问题所问,这是关于使用通配符的。让我给出使用通配符删除pod的示例。
应用程序删除包含单词“”的Pod
将<namespace>替换为要从中删除pods的名称空间。
kubectl get pods -n <namespace> --no-headers=true | awk '/application/{print $1}'| xargs kubectl delete -n <namespace> pod这将给出如下的响应。它将打印出已删除的pod。
pod "sre-application-7fb4f5bff9-8crgx" deleted
pod "sre-application-7fb4f5bff9-ftzfd" deleted
pod "sre-application-7fb4f5bff9-rrkt2" deleted删除包含“应用”或“服务”的Pod
将<namespace>替换为要从中删除pods的名称空间。
kubectl get pods -n <namespace> --no-headers=true | awk '/application|service/{print $1}'| xargs kubectl delete -n <namespace> pod这将给出如下的响应。它将打印出已删除的pod。
pod "sre-application-7fb4f5bff9-8crgx" deleted
pod "sre-application-7fb4f5bff9-ftzfd" deleted
pod "sre-service-7fb4f5bff9-rrkt2" deleted发布于 2019-12-27 18:54:57
您只需转义awk命令中的'$1‘变量:
alias kdpgroup="kubectl get pods -n bi-dev --no-headers=true | awk '/group-react/{print \$1}'| xargs kubectl delete -n bi-dev pod"我知道escape很无聊,如果你想避免它,你可以在你的.bash_profile中作为一个函数使用:
kdpgroup() {
kubectl get pods -n default --no-headers=true | awk '{print $1}' | xargs kubectl delete pod -n default
}https://stackoverflow.com/questions/59473707
复制相似问题