我有一个带有系统 pod(即kube-system
命名空间)和我的应用程序 pod 的 K3s 集群:
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
app-system pod/my-app-xxxx
db-system pod/my-db-xxxxx
我正在寻找一个 shell/kubectl 命令(用于自动化脚本),它可以删除我的应用程序命名空间(想要修改kubectl delete namespace app-system db-system
)而不在命令中提及应用程序命名空间名称(因为将来如果集群中有更多应用程序命名空间,我必须每次编辑此脚本)。
这意味着我想删除集群中的所有命名空间,除了 kube-system
类似的东西 - kubectl delete namespace -v kube-system
(我知道-v
这里不是一个有效的参数,只是展示了 grep-v
是如何使用除了以下单词的。寻找类似的东西kubectl delete ns...
)
我创建了以下代码,因此您可以将其用作包装器。您可以随意命名脚本。例如
exclude_ns_removal
使脚本可执行:
运行如下:
结果将类似于:
如果输出看起来不错,你应该修改这一行
至
可能比以前的答案更简单——在这里写脚本或循环是多余的,kubernetes 为你做这一切:
这对于可以解决的事情来说已经很多了