You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Kubectl命令获取Kubernetes所有用户账号的逗号分隔列表

Kubernetes用户列表获取方案

首先明确:原生Kubernetes没有内置的「普通用户」资源对象,普通用户的身份统一由外部身份体系(比如X509证书、OIDC提供商、Rancher身份管理模块)管理,所以没有原生的kubectl get users命令。你在Rancher页面看到的用户是Rancher自定义的集群资源,可以通过kubectl直接调用Rancher的自定义资源API获取。

方案1:获取Rancher管理的全量用户列表(和页面展示信息一致)

你需要先确保本地kubectl已经配置了Rancher集群的访问上下文,执行以下命令即可直接输出ID、姓名、邮箱的逗号分隔列表:

kubectl get users.management.cattle.io -o custom-columns=ID:.metadata.id,姓名:.displayName,邮箱:.username --no-headers | tr -s ' ' ','

如果需要将结果导出为CSV文件,在命令末尾添加导出路径即可:

kubectl get users.management.cattle.io -o custom-columns=ID:.metadata.id,姓名:.displayName,邮箱:.username --no-headers | tr -s ' ' ',' > ./rancher_users.csv

方案2:获取Kubernetes原生服务账号(ServiceAccount)逗号分隔列表

如果需要查询集群内所有命名空间下的服务账号列表,执行以下命令:

kubectl get serviceaccount -A -o custom-columns=命名空间:.metadata.namespace,服务账号名:.metadata.name,创建时间:.metadata.creationTimestamp --no-headers | tr -s ' ' ','

方案3:获取RBAC绑定中关联的普通用户列表

如果需要查询所有已经被分配了RBAC权限的外部普通用户,执行以下命令:

kubectl get clusterrolebindings,rolebindings -A -o jsonpath='{range .items[*]}{.subjects[?(@.kind=="User")].name}{"\n"}{end}' | sort | uniq | tr '\n' ','

内容的提问来源于stack exchange,提问作者Kerbol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:57:04