首页 文章

Kubernetes中的复制控制器VS部署

提问于
浏览
45

我想知道复制控制器和Kubernetes(1.2)中的部署有什么区别 . 通过入门文档(http://kubernetes.io/docs/hellonode/)我创建了一个部署 - 但它没有显示在Web UI上 .

当我从Web UI创建应用程序时 - 它们被创建为复制控制器 . 从功能上看,它们看起来非常相似(它们都管理pod并提供服务) .

那么 - 有什么区别我应该何时使用?

5 回答

  • 42

    部署是比复制控制器更新,更高级别的概念 . 它们管理副本集的部署(也是一个较新的概念,但几乎与复制控制器等效),并允许轻松更新副本集以及回滚到先前部署的能力 .

    以前这必须使用 kubectl rolling-update 来完成,这不是声明性的,也没有提供回滚功能 .

    Kubernetes Dashboard尚未更新以支持部署,目前仅支持复制控制器(请参阅Kubernetes仪表板中不可见的部署) .

    编辑:仪表板现在支持部署 .

  • 7

    Deployments仍然处于测试阶段(他们的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
    

    它也跟踪变化 .

    $ 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.
    
  • 8

    现在使用release 1.1仪表板确实支持部署 . 您可以部署或更新仪表板,而无需等待k8的1.3版本 . 例如,您可以使用official YAML,我们刚刚更改为使用Deployments .

    一般来说,我建议(以及谷歌和Kubernetes贡献者也这样做)使用部署而不是RC,因为它们是一个更强大的原语(包括滚动更新,版本控制/审计,canaray /绿蓝部署,回滚等) .

  • 2

    仪表板(Web UI)经过大量重新设计,以支持管理更多资源(如 DeploymentsDaemonSets 等),当前仪表板对 Deployments 不太了解 .

    很快将在kubernetes 1.3中支持在仪表板中管理部署(请参阅问题Feature request: handle Deployments) .

  • 2

    根据我的经验,部署不提供我需要的所有功能 . 或者,也许,我正以错误的方式使用它们 .

    当需要重新启动节点服务器时 - 通过部署启动在该服务器上运行的所有pod - 都会失败 . 我无法找到避免这种情况的方法 .

    但,

    Think解决方案是一个复制控制器 . 至少在描述中写道它处理这种情况 .

    我认为,主要的部署优势是您需要不断更改应用程序的版本 .

    所以两种方式都很好,但出于不同的原因 .

相关问题