api-resources 是什么
它列出当前集群实际支持的全部资源类型:资源名、常用简写、属于哪个接口组版本、是命名空间级还是集群级。写权限规则、确认某类资源是否安装、核对清单里的接口组名时,它比凭记忆或翻教程可靠得多,因为答案来自集群自身的接口发现。需要留意客户端会缓存这份结果,新装的资源类型可能查不到,此时要强制重新发现。
基本信息
| 输出列 | 资源名、简写、接口组版本、是否命名空间级、类型名 |
|---|---|
| 过滤参数 | --namespaced 按作用范围筛选,--verbs 按支持的动作筛选 |
| 按组查看 | --api-group 只列某个接口组;另有一条子命令列出全部可用组版本 |
| 缓存 | 结果默认使用本地缓存,新装资源类型查不到时需指定不使用缓存 |
| 典型用途 | 核对清单里的接口组名、确认简写、区分命名空间级与集群级 |
| 配套命令 | 列出可用接口组版本,用于确认某类资源属于哪个版本 |
典型使用场景
- 写权限规则前确认资源的正确名称与所属接口组
- 确认某类资源装在哪个接口组,避免照抄过期教程里的组名
- 检查自定义资源是否已经安装并被接口发现
- 区分命名空间级与集群级资源,决定用哪种权限对象
- 核对常用资源的简写,避免脚本里写了不存在的简称
使用示例
使用示例
kubectl api-resources | grep -i ingress # 查入口资源的接口组与简写
kubectl api-resources --namespaced=false # 只看集群级资源,写全局权限时用
kubectl api-resources --verbs=list,get --api-group=apps # 按动作与接口组筛选
kubectl api-resources --cached=false | wc -l # 强制重新发现,确认新资源是否已就绪
kubectl api-versions | grep networking # 看该接口组有哪些版本可用
kubectl api-resources --api-group=cert-manager.io # 核对自定义资源的组名输出列读法
| 列 | 含义 | 用途 |
|---|---|---|
| 资源名 | 资源的复数名称 | 命令与清单里使用这个名字 |
| 简写 | 命令行简写 | 写脚本前确认真实可用的简写 |
| 接口组版本 | 所属组与版本 | 决定清单里写哪个版本 |
| 是否命名空间级 | 作用范围 | 决定用命名空间权限还是全局权限 |
| 类型名 | 对象类型 | 清单里 kind 字段的取值 |
新安装的资源类型有本地缓存:查不到时强制重新发现一次,再判断是否真的没有装上。
同一类资源在不同版本集群里可能属于不同接口组:写清单前用这条命令核对,比照抄别人的文件安全。