我正在广泛使用helm go sdk。现在我并不总是知道哪些资源仍然在集群中,并且会调用来彻底清理它。
我可以得到KubeClient,但只找到了需要资源的delete方法。
也许是对kubectl delete all --all
的程序调用?最好包括命名空间资源本身。
还是我需要请求所有资源的名称,然后将其删除?
谢谢!
这是一个发布的社区wiki答案,以提高可见性。请随意扩展。
正如评论中已经提到的,列出所有资源的方法是使用适当的kubectl
命令。它背后的想法在这里得到了很好的解释:
kubectl api-resources
枚举中可用的资源类型您的集群。这意味着您可以将其与
kubectl get
结合起来,实际列出命名空间中每种资源类型的实例:kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found -l <label>=<value> -n <namespace>
这样,您就可以请求所有资源的名称,然后删除它们。