命令定位
kubectl 允许用资源短名代替完整复数名,比如 po 代表 pods、deploy 代表 deployments、svc 代表 services。适用平台是 Kubernetes,短名由各资源的 shortNames 字段声明,内置资源与 CRD 都可以定义。记住高频短名能显著减少输入量,但短名不是通用语言:跨集群、跨团队的文档里仍应写全称,避免歧义。
基本信息
| 适用平台 | Kubernetes,任意 kubectl 版本 |
|---|---|
| 大小写 | 不敏感:kubectl get Pod 与 get pod 等价 |
| 单复数 | 均可,pods 与 pod 效果相同 |
| 查询方式 | kubectl api-resources 查看全部短名,或 kubectl get <短名> 直接试 |
典型使用场景
- 日常巡检提速:get po、describe po 这类高频命令少敲一半字符
- 批量横查:kubectl get deploy,rs,po -l app=web 一次看完整调用链
- 写运维脚本:短名简短、可读性尚可,适合放在别名与函数里
- 确认有无短名:不确定某资源能不能缩写时,用 api-resources 查证而不是猜
- 新人交接:把团队常用短名整理进速查表,降低上手成本
常用示例
常用示例
kubectl get po -A # pods
kubectl get deploy,rs,po -l app=web # 组合多个短名,看发布链路
kubectl get svc,ep -n prod # services 与 endpoints 一起看
kubectl describe sts db # statefulsets
kubectl get no -o wide # nodes
kubectl api-resources | grep -i hpa # 没把握的短名先查再写高频短名对照
| 短名 | 资源 | 日常用途 |
|---|---|---|
| po | pods | 最小调度单元,排障第一入口 |
| deploy | deployments | 无状态工作负载,滚动发布 |
| sts | statefulsets | 有状态工作负载,稳定标识 |
| ds | daemonsets | 每节点一个 Pod,日志与网络代理 |
| svc / ep | services / endpoints | 服务入口与后端地址 |
| cm / sec | configmaps / secrets | 配置与凭据 |
| ns / no | namespaces / nodes | 命名空间与节点 |
| pvc / pv | persistentvolumeclaims / persistentvolumes | 存储申请与实际卷 |
不是所有资源都有短名:job、secret 无短名,hpa、netpol、pdb 这类缩写由资源自己声明,不同版本或 CRD 可能变化,没把握就查 api-resources。
短名与全称可以混用,甚至能在一条命令里混着写,例如 kubectl get deploy,po -l app=web,kubectl 会按各自的资源类型解析。
易混与建议
- rs 是 replicasets 的短名,容易与 sts 混淆:rs 是发布过程中的中间对象,sts 是有状态工作负载
- ing 指 ingresses,ep 指 endpoints,两者常一起查:入口对象的后端清单就存在 endpoints 里
- shortNames 由资源自身声明,Operator 安装的 CRD 也可能带来短名,集群之间未必一致
- 团队协作建议:命令里可用短名,文档与工单里写全称,交接时更省解释成本