HAOJX

kubernetes DaemonSet是如何进行版本管理的

字数统计: 258阅读时长: 1 min
2019/03/01 Share

我们知道deployment是通过管理ReplicaSet来进行管理pod的, 但是DaemonSet控制器直接控制的就是pod,那么他是如何进行版本的维护呢

在kubernetes v1.7之后 有一个对象是ControllerRevision 是专门用来管理某种Controller对象的版本的

比如某个DaemonSet的名字为A

我们查看这个 DaemonSet controller的版本

1
kubelet get controllerrevision -n kube-system -l name=A

这里会获得一个版本名字 , 命名规则是[controller-name]-[hash值], 这里获取的版本名字就是A-XXX

查看这个controllerRevision对象

1
kubelet describe controllerrevision A-XXX -n kube-system

可以看到返回的详细信息, 里面有个Data字段, 保留了该版本对应的完整的DaemonSet 的API对象,并且在Annotation字段保存了创建这个对象所使用的kubelet命令

这样在进行更新DaemonSet 版本的时候 revision的版本会从1 变成2

在回滚的时候会从2变成3 , 不会退回成1, 因为是一个新的ControllerRevision被创建了出来

CATALOG