概述
apps API
介绍
apps API 的核心功能是提供对 应用层工作负载 的声明式管理,主要包括:
- 部署管理:滚动更新、回滚、扩缩容
- 状态维护:确保应用实例数与声明的一致
- 版本控制:管理应用更新时的版本切换
- 与底层资源(Pod)的协调
主要管理的资源类型:
- 无状态应用(Deployment)
- 有状态应用(StatefulSet)
- 守护进程(DaemonSet)
- 一次性任务(ReplicaSet,通常由 Deployment 自动管理)
核心 API 资源类型
在 apps/v1 中定义了以下关键资源(所有资源均为 namespace-scoped):
- Deployment
- DaemonSet
- StatefulSet
- ReplicaSet
源码学习路径
类型定义:
- staging/src/k8s.io/api/apps/v1/types.go
控制器实现:
- Deployment: pkg/controller/deployment/
- StatefulSet: pkg/controller/statefulset/
- DaemonSet: pkg/controller/daemon/
客户端操作:
- staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/
设计意义
- 抽象与自动化:将 Pod 管理从手动操作转为声明式管理
- 版本化运维:支持灰度发布、金丝雀发布等高级部署模式
- 状态分离:区分应用定义(Spec)和运行时状态(Status)