使用模式匹配或通配符删除 Kubernetes POD
·
回答问题
当我在下面使用它时,它会在从命令行匹配模式后删除正在运行的 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 或 Wildcard 删除 POD 的内容?
谢谢
Answers
我是否缺少使用模式匹配或通配符删除 POD 的内容?
在使用 Kubernetes 时,更常见的是使用 labels 和 selectors。例如。如果您部署了一个应用程序,您通常会在 pod 上设置一个标签,例如app=my-app然后您可以使用例如kubectl get pods -l app=my-app.
使用这种方法,可以更轻松地删除您感兴趣的 pod,例如
kubectl delete pods -l app=my-app
或使用命名空间
kubectl delete pods -l app=my-app -n default
查看更多关于Kubernetes 标签和选择器
基于集合的选择器
我有一些 pod 以“superset-react”和“superset-graphql”的名义运行,我想搜索我的通配符超集并在一个命令中删除它们
我建议这些 pod 有标签app=something-react和app=something-graphql。如果您想对这些应用程序进行分类,例如如果您的“超集”不同,您可以为所有这些类型的应用添加标签app-type=react和app-type=graphql。
然后,您可以使用以下命令删除两种应用类型的 pod:
kubectl delete pods -l 'app-type in (react, graphql)'
更多推荐
所有评论(0)