首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes | rollout undo和deploy to a older版本有什么不同?

Kubernetes | rollout undo和deploy to a older版本有什么不同?
EN

Stack Overflow用户
提问于 2020-08-19 17:17:52
回答 3查看 255关注 0票数 0

我看到有两种方法可以返回到较旧的部署版本。一种是使用rollout undo命令,另一种选择是再次部署到旧版本。这两者之间有什么区别吗?或者它们都是可以互换的?

EN

回答 3

Stack Overflow用户

发布于 2020-08-19 17:45:48

据我所知,您要求在执行undo和手动将pod定义更改为之前的确切状态之间有什么不同。如果是这样的话-请阅读下面的内容。

当您进行新的部署时,如果在该部署中您的pod定义的散列已被修改- Deployment Controller将创建一个新的ReplicaSet (让我们称之为A)以推出新版本,但同时它将减少现有ReplicaSet中的副本数量(让我们称之为B) -因此您有2个ReplicaSet (AB)。它如何做到这一点-取决于您选择的推出策略(例如:rolling updatesblue-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管理ReplicaSets
  • ReplicaSet更改etcd
  • Scheduler计划中的所需pods计数pod
  • Kubelet创建/终止实际pod

它们都通过监视机制与API Server通信,并再次通过API Server监视资源定义的更改

票数 1
EN

Stack Overflow用户

发布于 2020-08-19 17:27:39

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

kubectl卷展栏历史部署xyz

修订版-->这些不能正确反映,请使用撤消卷出获取新数字

票数 0
EN

Stack Overflow用户

发布于 2020-08-19 18:01:14

首先,没有直接的选择方式是在kubernetes中再次部署。是的,撤消的方法是返回到部署的前一个版本。返回的命令是

代码语言:javascript
复制
kubectl undo deployment ABC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63483788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档