byt*_*yer 57 google-compute-engine kubernetes google-kubernetes-engine
我想知道复制控制器和Kubernetes(1.2)中的部署有什么区别.通过入门文档(http://kubernetes.io/docs/hellonode/)我创建了一个部署 - 但它没有显示在Web UI上.
当我从Web UI创建应用程序时 - 它们被创建为复制控制器.从功能上看,它们看起来非常相似(它们都管理pod并提供服务).
那么 - 有什么区别我应该何时使用?
Pix*_*ant 50
部署是比复制控制器更新,更高级别的概念.它们管理副本集的部署(也是一个较新的概念,但几乎与复制控制器等效),并允许轻松更新副本集以及回滚到先前部署的能力.
以前必须完成此操作,kubectl rolling-update而不是声明性的,并且不提供回滚功能.
Kubernetes Dashboard尚未更新以支持部署,目前仅支持复制控制器(请参阅Kubernetes仪表板中不可见的部署).
编辑:仪表板现在支持部署.
Swa*_*uru 12
这是2020 年对 4 年前 2016 年开始的问题的最新回答
2017 年给出了一个很好的答案 https://www.mirantis.com/blog/kubernetes-replication-controller-replica-set-and-deployments-understanding-replication-options/
现在我们在Kubernetes 版本 - 1.17 中,我们有 3 种类型
部署(推荐)
部署是一个更高级别的 API 对象,它以与 kubectl 滚动更新类似的方式更新其底层副本集及其 Pod。如果您想要此滚动更新功能,建议部署部署,因为与 kubectl rolling-update 不同,它们是声明性的、服务器端的,并且具有附加功能。
副本集
ReplicaSet 是下一代的 ReplicationController,它支持新的基于集合的标签选择器。它主要被 Deployment 用作编排 pod 创建、删除和更新的机制。请注意,我们建议使用部署而不是直接使用副本集,除非您需要自定义更新编排或根本不需要更新。
ReplicationController(不推荐)
确保指定数量的 Pod 副本在任何时候都在运行。换句话说,ReplicationController 确保一个 pod 或一组同构的 pod 始终可用。
部署仍处于测试阶段(他们的API处于测试阶段extensions/v1beta1),这可能是他们未在UI中显示的原因.它们在保持pod活着的基础上自动化状态转换.从链接页面:
部署为Pod和副本集(下一代复制控制器)提供声明性更新.您只需要在Deployment对象中描述所需的状态,Deployment控制器将以受控速率将实际状态更改为所需状态.您可以定义"部署"以创建新资源,或者用新资源替换现有资源.
它们还提供了推出历史记录和其他有用的功能.
$ kubectl rollout history deployment/nginx-deployment
deployments "nginx-deployment":
REVISION CHANGE-CAUSE
1 kubectl create -f docs/user-guide/nginx-deployment.yaml --record
2 kubectl apply -f docs/user-guide/new-nginx-deployment.yaml
3 kubectl apply -f docs/user-guide/bad-nginx-deployment.yaml
Run Code Online (Sandbox Code Playgroud)
它也跟踪变化.
$ kubectl rollout history deployment/nginx-deployment --revision=2
deployments "nginx-deployment" revision 2
Labels: app=nginx,pod-template-hash=1564180365
Annotations: kubernetes.io/change-cause=kubectl apply -f docs/user-guide/new-nginx-deployment.yaml
Image(s): nginx:1.9.1
No volumes.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20422 次 |
| 最近记录: |