大家好!本指南是为正在准备Kubernetes认证中的佼佼者——CKAD (Certified Kubernetes Application Developer) 考试的各位准备的。🚀
我将详细整理API版本体系和API弃用(Deprecation)策略,帮助您在10分钟内掌握这些在考试中可能感到棘手的内容。理解这些内容后,您在创建资源时将不再纠结于应该使用哪个apiVersion!

1. 理解Kubernetes的心脏:API服务器 💓
Kubernetes的所有操作都通过kube-apiserver进行。无论是我们敲击kubectl命令,还是点击仪表盘,最终都是向API服务器发送HTTP请求。
Kubernetes API为了管理众多资源(Pod, Deployment, Service等),被划分为API组。
- Core(Legacy)组: 使用/api/v1路径,包含Pod, Service, ConfigMap等。
- Named组: 使用/apis/$GROUP_NAME/$VERSION路径,包含Deployment(apps/v1), Job(batch/v1)等。
2. API版本的3阶段演进过程 🌱
Kubernetes API根据稳定性经历三个阶段。在编写YAML文件时,检查这些阶段非常重要!
| 阶段 | 特点 | 稳定性 |
|---|---|---|
| Alpha (v1alpha1) | 初期阶段,默认禁用。bug可能性高。 | ❌ 低 |
| Beta (v1beta1) | 已完成充分测试。默认启用但可能发生变更。 | ⚠️ 中 |
| Stable (v1) | 最终完成阶段。稳定并长期支持。 | ✅ 高 |
—
3. API弃用(Deprecation)策略:为何重要? ⚠️
Kubernetes持续发展,因此旧的API版本将不再使用(弃用)。CKAD考试中尤其需要注意的是,当“正在使用的集群版本中特定API被删除(Removed)时”的应对能力。
💡 必须记住的弃用规则
- Stable API在弃用前至少维护12个月或3个版本。
- Beta API在弃用前至少维护9个月或3个版本。
- API版本被弃用(Deprecated)并不意味着立即消失,但它计划在未来被删除,因此应替换为最新版本。
4. CKAD考试实战技巧:查看API信息 🛠️
在考试中,当你困惑“我需要创建某个资源,但应该使用哪个apiVersion?”时,可以使用以下神奇的命令。
① 查看当前支持的API版本
Bash
kubectl api-versions
通过此命令,您可以查看集群支持的所有group/version列表。
② 按资源查看API组和版本
Bash
kubectl api-resources
此命令一目了然地显示每个资源(Deploy, Po, Ing等)属于哪个API组,以及它们的SHORTNAMES是什么。
③ 查看特定资源的详细说明和版本
Bash
kubectl explain deployment
此命令不仅显示资源的结构,还在顶部明确指出该资源的最新GROUP和VERSION。
5. API弃用应对场景 (示例: Ingress) 📋
例如,过去创建Ingress时使用extensions/v1beta1,但在最新版本中应使用networking.k8s.io/v1。
[错误示例 – 旧版本]
YAML
apiVersion: extensions/v1beta1 # ❌ 可能是已删除的版本
kind: Ingress
...
[正确示例 – 最新版本]
YAML
apiVersion: networking.k8s.io/v1 # ✅ 推荐的Stable版本
kind: Ingress
...
如果考试中没有明确指定要创建的特定版本,始终使用通过`kubectl explain`确认的最新Stable版本是最安全的! ✅
🌟 总结与结束
- Kubernetes API经历Alpha -> Beta -> Stable阶段。
- `kubectl api-resources`和`kubectl explain`是您在考场上最好的朋友。
- 弃用(Deprecation)是为了更好的功能而进行的改变。不要惊慌,只需检查最新的API组。
如果您熟练掌握这些内容,CKAD考试中与API相关的问题将迎刃而解。衷心祝愿您考试成功!🎊
发表回复