Cluster computing Kubernetes部署与滚动更新

Cluster computing Kubernetes部署与滚动更新,cluster-computing,kubernetes,Cluster Computing,Kubernetes,我已经尝试了Kubernetes的所有基础知识,如果你想更新你的应用程序,你可以使用kubectl rolling update在不停机的情况下逐个更新POD。现在,我再次阅读了kubernetes文档,在版本v1beta1上发现了一个名为Deployment的新功能。我很困惑,因为部署文档上有一行: 下次我们想要更新POD时,我们可以再次更新部署 这不是滚动更新的角色吗?任何输入都将非常有用。部署是一个允许您定义声明性部署的对象。 它封装了 DeploymentStatus对象,负责管理副本

我已经尝试了Kubernetes的所有基础知识,如果你想更新你的应用程序,你可以使用
kubectl rolling update
在不停机的情况下逐个更新POD。现在,我再次阅读了kubernetes文档,在版本
v1beta1
上发现了一个名为
Deployment
的新功能。我很困惑,因为部署文档上有一行:

下次我们想要更新POD时,我们可以再次更新部署


这不是滚动更新的角色吗?任何输入都将非常有用。

部署是一个允许您定义声明性部署的对象。 它封装了

  • DeploymentStatus对象,负责管理副本数量及其状态

  • DeploymentSpec对象,其中包含副本数、templateSpec、选择器和其他一些处理部署行为的数据

您可以在此处看到实际代码:

您将主要使用部署以声明方式部署服务/应用程序

如果要修改部署,请在不更改元数据的情况下更新使用的yaml/json


相比之下,kubectl滚动更新不是声明性的,不涉及yaml/json,需要一个现有的复制控制器。

主要区别在于“kubectl滚动更新”是客户端驱动的滚动更新,而部署对象提供服务器端滚动更新

我一直在使用复制控制器和声明性部署对象测试服务的滚动更新。我发现从客户端的角度来看,使用rc似乎没有停机时间。但是,当部署执行滚动更新时,客户端会在一段时间内收到一些错误,直到更新稳定为止


这是kubernetes 1.2.1版的版本,因此,如果您需要更新pod,kubectl滚动更新仍然是最佳选择?那么,在生产中使用哪个更可取?