我看到有两种方法可以返回到较旧的部署版本。一种是使用rollout undo命令,另一种选择是再次部署到旧版本。这两者之间有什么区别吗?或者它们都是可以互换的?
发布于 2020-08-19 17:45:48
据我所知,您要求在执行undo和手动将pod定义更改为之前的确切状态之间有什么不同。如果是这样的话-请阅读下面的内容。
当您进行新的部署时,如果在该部署中您的pod定义的散列已被修改- Deployment Controller将创建一个新的ReplicaSet (让我们称之为A)以推出新版本,但同时它将减少现有ReplicaSet中的副本数量(让我们称之为B) -因此您有2个ReplicaSet (A,B)。它如何做到这一点-取决于您选择的推出策略(例如:rolling updates、blue-green deployment等)。
当您执行kubectl rollout undo deploy <your deployment>时- Deployment Controller基本上会减少新创建的ReplicaSet (A)中的副本数量,而增加旧ReplicaSet (B)中的副本数量。
但是,当你这样做的时候,正如你所说的:deploy again to the older version -你基本上做了一个新的部署,所以新的ReplicaSet (C)将被创建,以便推出你的新版本(即使它不是一个新版本),并且你现有的ReplicaSet(A)副本数量将会减少。
所以,基本上不同之处在于创建的ReplicaSet。
阅读:Deployments了解更多信息
整个流程如下:
Deployment Controller管理ReplicaSetsReplicaSet更改etcdScheduler计划中的所需pods计数podKubelet创建/终止实际pod 它们都通过监视机制与API Server通信,并再次通过API Server监视资源定义的更改
发布于 2020-08-19 17:27:39
当您撤消转出时,您正在以一种不会反映在源代码管理中的方式进行更新。首选方法是恢复您的YAML并应用以前的版本-然后您的修订与跟踪的配置相匹配。
kubectl卷展栏历史部署xyz
修订版-->这些不能正确反映,请使用撤消卷出获取新数字
发布于 2020-08-19 18:01:14
首先,没有直接的选择方式是在kubernetes中再次部署。是的,撤消的方法是返回到部署的前一个版本。返回的命令是
kubectl undo deployment ABChttps://stackoverflow.com/questions/63483788
复制相似问题