首页/云/Kubernetes 速查/kubectl api-resources 查询资源清单
kubectl 基础56 条

kubectl api-resources 查询资源清单

列出集群支持的全部资源类型:短名、API 组、是否命名空间级、对应 Kind,写 RBAC 与排障时先确认资源的准确名称。

Kubernetes 速查云更新于 2026-10-13

命令定位

kubectl api-resources 列出当前集群支持的全部资源类型及其元信息:短名、API 组、是否属于命名空间、对应的 Kind。适用平台是 Kubernetes。它回答的是「这个集群里到底有哪些资源、该用哪个名字调用」,写 RBAC 规则、配 CRD、排障时找不到资源别名或分不清命名空间级与集群级资源,都先从这条命令入手最省时间。

基本信息

适用平台Kubernetes,任意 kubectl 版本
输出列NAME、SHORTNAMES、APIVERSION、NAMESPACED、KIND
补充命令kubectl api-versions 只看 API 组与版本列表
权限要求集群级 discovery 权限,普通用户默认就有

典型使用场景

  • 确认资源名与缩写:写 YAML 或命令前核对正确的复数名与短名
  • 写 RBAC 时区分范围:用 --namespaced=false 列出集群级资源,避免把 Role 写成 ClusterRole
  • 核对 API 版本:确认当前集群推荐用哪个 group/version(如 networking.k8s.io/v1)
  • 排查 CRD:检查自定义资源是否已正确注册、出现在列表里
  • 核对短名冲突:多个 CRD 抢同一个短名时,以这里的输出为准

常用示例

常用示例
kubectl api-resources                                  # 全量资源清单
kubectl api-resources --namespaced=false               # 只看集群级资源,写 ClusterRole 用
kubectl api-resources --api-group=apps                 # 只看 apps 组
kubectl api-resources --verbs=list --namespaced=true   # 带指定动词的命名空间级资源
kubectl api-resources | grep -i networkpolicy          # 找具体资源
kubectl api-versions | sort                            # 只看可用的 API 版本

输出逐列读法

列含义使用注意
NAME资源的复数名(含部分短名备注)写清单时用这个复数名
SHORTNAMES命令行可用的缩写不是所有资源都有,如 job、secret 无短名
APIVERSION所属 API 组与版本清单里 apiVersion 要与此处推荐版本一致
NAMESPACEDtrue 表示命名空间级false 是集群级,删除时影响面更大
KINDYAML 里的 kind 值与 apiVersion 必须配对使用
CRD 注册成功后其自定义资源会自动出现在这个列表里;如果没出现,先查 CRD 是否 Established,而不是怀疑 kubectl 版本。
同一个 Kind 可能同时存在多个 API 版本(如旧版 extensions/v1beta1 与新版本),清单必须写当前集群推荐的版本,写废弃版本在升级后会直接失败。

易错点

  • 同一 Kind 可能有多个 API 版本共存,写清单要用当前推荐的 APIVERSION(如 networking.k8s.io/v1),沿用旧版本在集群升级后会被移除
  • 集群级资源(nodes、pv、clusterrole)加 -n 不影响查询结果,但删除修改时不要误以为受命名空间隔离保护
  • 拿别人的集群输出照搬到自建集群:CSI、CRD 相关的资源未必存在,命令会报 no matches for kind
  • 只记短名不看全称:团队文档里首次出现应写全称,避免不同集群的短名冲突时误读

数据来源与参考

  • Kubernetes 官方文档 · kubectl api-resources
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌