ControllerRevision
ControllerRevision
实现了一个不可变的状态数据快照。客户端负责序列化和反序列化包含其内部状态的对象
一旦成功创建了 ControllerRevision
,就不能对其进行更新,但是可以被删除。APIServer
会拒绝所有试图修改 Data
字段的请求。ControllerRevision
主要被 DaemonSet
和 StatefulSet
控制器用于更新和回滚。而且这个对象是beta
的,在未来可能会发生变化,
客户端不应依赖其稳定性。因此ControllerRevision
主要在内部控制器内使用。
源码分析
1 | // staging/src/k8s.io/api/apps/v1/types.go |
小结
严格来说ControllerRevision history controller
并不是一个真正的控制器,只是提供了创建ControlllerRevison
和对ControllerRevision
操作的一些方法,可以给其它的控制器使用,比如StatefulSet
。
REF:
1.staging/src/k8s.io/api/apps/v1/types.go
2.pkg/controller/history/controller_history.go
3.pkg/controller/statefulset/stateful_set_control.go