The following explanations are from
Kubernetes 在行动s book
手动删除和重新创建复制控制器
手动进行滚动更新是laborious
和error-prone
。根据副本的数量,您需要以正确的顺序运行十几个或更多命令来执行更新过程。幸运的是,Kubernetes 允许您使用单个命令执行滚动更新。
使用 kubectl滚动更新
您可以让 kubectl 执行它们,而不是手动使用 ReplicationControllers 执行滚动更新。使用 kubectl 执行更新使过程变得更加容易,但是,现在这是更新应用程序的过时方式。
为什么执行这样的更新不如预期的好,因为它是必要的。Kubernetes 是如何告诉它系统的期望状态,并让 Kubernetes 通过找出最佳方式来实现该状态的。
使用部署以声明方式更新应用程序——最佳选择——
Deployment 是一种更高级别的资源,用于部署应用程序并以声明方式更新它们,而不是通过 ReplicationController 或 ReplicaSet 来完成,它们都被认为是较低级别的概念。
使用 Deployment 而不是较低级别的构造可以更轻松地更新应用程序,因为您通过单个 Deployment 资源定义所需的状态,并让 Kubernetes 负责其余的工作。
还有一件事,回滚 部署是可能的,因为部署。