ControllerRevision

裴意
2023-12-01

Deployment 管理版本,靠的是“一个版本对应一个 ReplicaSet 对象”。而DaemonSet 控制器操作的直接就是 Pod,所以不会有 ReplicaSet 这样的对象参与其中。那么,它的这些版本又是如何维护的呢?所谓,一切皆对象!在 Kubernetes 项目中,任何你觉得需要记录下来的状态,都可以被用 API 对象的方式实现。当然,“版本”也不例外。Kubernetes v1.7 之后添加了一个 API 对象,名叫 ControllerRevision,专门用来记录某种 Controller 对象的版本,ControllerRevision 其实是一个通用的版本管理对象。这样,Kubernetes 项目就巧妙地避免了每种控制器都要维护一套冗余的代码和逻辑的问题。

相比于 Deployment,DaemonSet 只管理 Pod 对象,然后通过 nodeAffinity 和 Toleration 这两个调度器的小功能,保证了每个节点上有且只有一个 Pod。与此同时,DaemonSet 通过使用 ControllerRevision,来保存和管理自己对应的“版本”。其中StatefulSet编排对象也是使用 ControllerRevision 进行版本管理的,这是因为在 Kubernetes 项目里,ControllerRevision 其实是一个通用的版本管理对象。

DaemonSet
StatefulSet

 类似资料:

相关阅读

相关文章

相关问答