Kubernetes 查找Kubernates集群中ServceAccount的用法

Kubernetes 查找Kubernates集群中ServceAccount的用法,kubernetes,Kubernetes,我正在三个节点的裸机中运行一个Kubernates集群。 我已经应用了两个不同服务的yaml文件。 现在我想在集群中进行排序,并清理一些孤立的kube对象。 为此,我需要了解使用或引用某个服务帐户的POD集或其他实体 例如,我可以挖掘管理员用户的ClusterRoleBinding并对其进行调查: kubectl get сlusterrolebinding admin-user 但是有没有一个好的kubectl选项组合来查找一些服务帐户的所有用法/参考?看看这个。通过自制或krew安装后,您

我正在三个节点的裸机中运行一个Kubernates集群。 我已经应用了两个不同服务的yaml文件。 现在我想在集群中进行排序,并清理一些孤立的kube对象。 为此,我需要了解使用或引用某个服务帐户的POD集或其他实体

例如,我可以挖掘管理员用户的ClusterRoleBinding并对其进行调查:

kubectl get сlusterrolebinding admin-user
但是有没有一个好的
kubectl
选项组合来查找一些服务帐户的所有用法/参考

看看这个。通过自制或krew安装后,您可以使用它查找服务帐户并查看其角色、范围和来源。它不能告诉哪些pod引用它,但仍然是一个有用的工具

rbac-lookup serviceaccountname --output wide --kind serviceaccount

您可以通过以下命令使用服务帐户列出所有资源:

kubectl get rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range .items[?(@.subjects[0].name=="YOUR_SERVICE_ACCOUNT_NAME")]}[{.roleRef.kind},{.roleRef.name}];{end}' | tr ";" "\n"
您只需将
您的\u服务\u帐户\u名称
替换为您正在调查的名称即可

我在集群上测试了这个命令,它运行正常


如果此解决方案对您有帮助,请告诉我。

非常感谢您,mWatney!这对我有用。至少我有一些需要进一步调查的对象。