我想知道复制控制器和Kubernetes(1.2)中的部署有什么区别 . 通过入门文档(http://kubernetes.io/docs/hellonode/)我创建了一个部署 - 但它没有显示在Web UI上 .
当我从Web UI创建应用程序时 - 它们被创建为复制控制器 . 从功能上看,它们看起来非常相似(它们都管理pod并提供服务) .
那么 - 有什么区别我应该何时使用?
我想知道复制控制器和Kubernetes(1.2)中的部署有什么区别 . 通过入门文档(http://kubernetes.io/docs/hellonode/)我创建了一个部署 - 但它没有显示在Web UI上 .
当我从Web UI创建应用程序时 - 它们被创建为复制控制器 . 从功能上看,它们看起来非常相似(它们都管理pod并提供服务) .
那么 - 有什么区别我应该何时使用?
5 回答
部署是比复制控制器更新,更高级别的概念 . 它们管理副本集的部署(也是一个较新的概念,但几乎与复制控制器等效),并允许轻松更新副本集以及回滚到先前部署的能力 .
以前这必须使用
kubectl rolling-update
来完成,这不是声明性的,也没有提供回滚功能 .Kubernetes Dashboard尚未更新以支持部署,目前仅支持复制控制器(请参阅Kubernetes仪表板中不可见的部署) .
编辑:仪表板现在支持部署 .
Deployments仍然处于测试阶段(他们的API在
extensions/v1beta1
之下),这可能是他们没有在UI中显示的原因 . 它们在保持pod活着的基础上自动化状态转换 . 从链接页面:它们还提供了推出历史记录和其他有用的功能 .
它也跟踪变化 .
现在使用release 1.1仪表板确实支持部署 . 您可以部署或更新仪表板,而无需等待k8的1.3版本 . 例如,您可以使用official YAML,我们刚刚更改为使用Deployments .
一般来说,我建议(以及谷歌和Kubernetes贡献者也这样做)使用部署而不是RC,因为它们是一个更强大的原语(包括滚动更新,版本控制/审计,canaray /绿蓝部署,回滚等) .
仪表板(Web UI)经过大量重新设计,以支持管理更多资源(如
Deployments
和DaemonSets
等),当前仪表板对Deployments
不太了解 .很快将在kubernetes 1.3中支持在仪表板中管理部署(请参阅问题Feature request: handle Deployments) .
根据我的经验,部署不提供我需要的所有功能 . 或者,也许,我正以错误的方式使用它们 .
当需要重新启动节点服务器时 - 通过部署启动在该服务器上运行的所有pod - 都会失败 . 我无法找到避免这种情况的方法 .
但,
Think解决方案是一个复制控制器 . 至少在描述中写道它处理这种情况 .
我认为,主要的部署优势是您需要不断更改应用程序的版本 .
所以两种方式都很好,但出于不同的原因 .