Kubernetes 库伯内特斯|什么';卷展栏撤消与部署到旧版本之间的区别是什么?

Kubernetes 库伯内特斯|什么';卷展栏撤消与部署到旧版本之间的区别是什么?,kubernetes,Kubernetes,我发现有两种方法可以返回到较旧的部署版本。一种是使用卷展栏撤消命令,另一种是再次部署到旧版本。这两者之间有什么区别吗?或者它们都是可互换的?当您撤消推出时,您正在以源代码管理中未反映的方式进行更新。首选的方法是恢复YAML并应用以前的版本-然后您的修订与跟踪的配置相匹配 kubectl卷展历史部署xyz 修订-->这些没有正确反映,请使用“撤消展开”获取一个新的编号。据我所知,您要求在执行undo和手动将pod定义更改为精确的先前状态之间进行区别。如果是这种情况,请阅读下面的内容 当您进行新部署

我发现有两种方法可以返回到较旧的部署版本。一种是使用卷展栏撤消命令,另一种是再次部署到旧版本。这两者之间有什么区别吗?或者它们都是可互换的?

当您撤消推出时,您正在以源代码管理中未反映的方式进行更新。首选的方法是恢复YAML并应用以前的版本-然后您的修订与跟踪的配置相匹配

kubectl卷展历史部署xyz


修订-->这些没有正确反映,请使用“撤消展开”获取一个新的编号。据我所知,您要求在执行
undo
和手动将
pod
定义更改为精确的先前状态之间进行区别。如果是这种情况,请阅读下面的内容

当您进行新部署时,如果在该部署中您的pod定义的散列已被修改,
部署控制器
将创建一个新的
复制集
(我们称之为
a
),以推出新版本,但同时它将减少现有
复制集中的副本计数
(我们称之为
B
)-因此您有2个
ReplicaSet
s(
A
B
)。它如何做到这一点取决于您选择的推出策略(例如:
滚动更新
蓝绿部署
),等等)

当您执行
kubectl卷展栏撤消部署时
-
部署控制器
将基本上减少新创建的
ReplicaSet
A
)中的副本数量,并增加旧
ReplicaSet
B
)中的副本数量

但是,当您这样做时,正如您所说:
再次部署到旧版本
-您基本上进行了新的部署,因此将创建新的
ReplicaSet
C
)以推出新版本(即使它不是新版本),并且现有的
ReplicaSet
的(
a
)副本计数将减少

因此,基本上区别在于创建的
ReplicaSet
s

阅读:更多信息

整个流程如下:

  • 部署控制器
    管理
    复制集
    s
  • ReplicaSet
    更改所需的
    pod
    计数
    etcd
  • Scheduler
    调度
    pod
  • Kubelet
    创建/终止实际POD

它们都与
API服务器
通信,并通过监视机制,再次通过
API服务器

监视资源定义的变化。首先,没有直接的方法可以选择在kubernetes中重新部署。是的,撤消方法是返回部署的以前版本。返回的命令是

kubectl undo deployment ABC