Kubernetes RBAC规则的apiGroups与资源查询及对应关系咨询
查询Kubernetes RBAC可用资源及对应API组的方法
先看你提供的这个RBAC Role示例:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: xi-{{instanceId}} name: deployment-creation rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "list", "watch"] - apiGroups: ["batch", "extensions"] resources: ["jobs"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
要查询Kubernetes里所有可用的资源以及它们对应的API组,有几个非常实用的kubectl命令可以直接用:
1. 一次性列出所有资源与对应API组
直接运行这条命令,就能得到集群中所有资源的完整清单,包括它们所属的API组:
kubectl api-resources
输出里的关键列信息:
NAME:资源的标准名称(比如pods、jobs)APIGROUP:资源所属的API组(空值代表核心API组,对应你示例里的"")SHORTNAMES:资源的简写别名(比如po对应pods,方便命令行快速输入)NAMESPACED:标记资源是否属于命名空间级别(比如pods是命名空间级,nodes是集群级)
2. 查看单个资源的详细API信息
如果想深挖某个特定资源的API组、版本等细节,可以用:
kubectl explain <资源名称>
比如查询jobs的详情:
kubectl explain jobs
输出开头就能看到核心信息:
KIND: Job
VERSION: batch/v1
这就明确说明jobs属于batchAPI组。
3. 查看集群支持的所有API组与版本
如果想确认集群支持哪些API组及对应版本,运行这条命令:
kubectl api-versions
输出会类似这样:
v1 batch/v1 apps/v1 extensions/v1beta1 ...
这里的前缀(比如batch/)就是API组,后面的是具体版本号。
总的来说,kubectl api-resources是配置RBAC规则时最实用的工具,能快速帮你定位资源和对应的API组。
内容的提问来源于stack exchange,提问作者whistling_marmot
相关产品推荐
相关产品推荐

