我正在三个节点的裸机中运行 Kubernates集群。 我已经应用了几个不同服务的 yaml 文件。 现在,我要在集群中进行排序,并清理一些孤立的kube对象。 为此,我需要了解使用或引用某个 ServiceAccount 的Pod或其他实体的集合。
例如,我可以挖掘管理员用户的ClusterRoleBinding并进行调查:
kubectl get сlusterrolebinding admin-user
但是是否有很好的kubectl
选项组合来查找某些 ServiceAccount 的所有用法/参考?
答案 0 :(得分:1)
您可以通过以下命令使用服务帐户列出所有资源:
kubectl get rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range .items[?(@.subjects[0].name=="YOUR_SERVICE_ACCOUNT_NAME")]}[{.roleRef.kind},{.roleRef.name}];{end}' | tr ";" "\n"
您只需要将YOUR_SERVICE_ACCOUNT_NAME
替换为要调查的那个。
我在群集上测试了此命令,它可以工作。
让我知道此解决方案是否对您有所帮助。
答案 1 :(得分:0)
看看这个project。通过自制软件或krew安装后,您可以使用它找到一个服务帐户,然后查看其作用,范围和来源。它不会告诉哪些Pod在引用它,但仍然是一个有用的工具。
rbac-lookup serviceaccountname --output wide --kind serviceaccount