Kubernetes部署与滚动更新

时间:2016-03-07 11:51:29

标签: cluster-computing kubernetes

我已经尝试了Kubernetes的所有基础知识,如果您想要更新应用程序,可以使用kubectl rolling-update逐个更新pod,而无需停机。现在,我再次阅读了kubernetes文档,并在版本Deployment上找到了一个名为v1beta1的新功能。我很困惑,因为我在部署文档上有一行:

  

下次我们要更新pod时,我们可以再次更新部署。

这不是rolling-update的角色吗?任何输入都非常有用。

3 个答案:

答案 0 :(得分:1)

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

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

  • DeploymentSpec对象,其中包含许多副本,templateSpec,选择器以及其他一些处理部署行为的数据。

您可以在此处查看实际代码: https://github.com/kubernetes/kubernetes/blob/5516b8684f69bbe9f4688b892194864c6b6d7c08/pkg/apis/extensions/v1beta1/types.go#L223-L253

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

如果要修改部署,请更新您使用的yaml / json而不更改元数据。

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

答案 1 :(得分:1)

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

这是kubernetes 1.2.1

答案 2 :(得分:0)

主要区别在于" kubectl滚动更新"是客户端驱动的滚动更新,而Deployment对象为您提供服务器端滚动更新。