Deployment ReplicatSet和ReplicationController之间有什么区别?

Deployment ReplicatSet和ReplicationController之间有什么区别?,deployment,kubernetes,replicaset,Deployment,Kubernetes,Replicaset,从文档中可以看出,在运行时会创建。它似乎支持a-scale up/down和自动重启的一些相同功能,但不清楚它是否支持滚动升级或自动缩放 《v1.1.8用户指南》显示了如何在中创建部署(它会自动创建ReplicaSet),但是kubectl get replicasets命令在v1.2.0之前不可用。我在文档中找不到有关ReplicaSet的任何其他信息 ReplicaSet最终会取代ReplicationController?为什么我要使用Deployment和ReplicaSet而不是Rep

从文档中可以看出,在运行时会创建。它似乎支持a-scale up/down和自动重启的一些相同功能,但不清楚它是否支持滚动升级或自动缩放

《v1.1.8用户指南》显示了如何在中创建部署(它会自动创建
ReplicaSet
),但是
kubectl get replicasets
命令在v1.2.0之前不可用。我在文档中找不到有关
ReplicaSet
的任何其他信息


ReplicaSet
最终会取代
ReplicationController
?为什么我要使用
Deployment
ReplicaSet
而不是
ReplicationController

目前,在大多数情况下,差异应该是微不足道的。ReplicaSet具有通用标签选择器:。它应该支持replication controller支持的所有功能

ReplicateSet最终会取代ReplicationController吗?为什么我要使用Deployment和ReplicateSet而不是ReplicationController

这归结为滚动更新与部署。请阅读部署文档以了解差异:。简而言之,如果您启动滚动更新并关闭笔记本电脑,您的副本会混合使用一些中间映像版本。如果创建部署并关闭笔记本电脑,则部署要么成功发布到apiserver,在这种情况下它在服务器端工作,要么不工作,在这种情况下,所有副本仍在旧版本上

糟糕的是,目前几乎所有的文档都是关于ReplicationController的


同意,大多数文档正在更新。不幸的是,internet上的文档比github上的文档更难更新。

副本集是下一代复制控制器。复制控制器是必要的,但副本集尽量具有声明性

1.目前副本集和复制控制器之间的主要区别在于选择器支持

+--------------------------------------------------+-----------------------------------------------------+
|                   Replica Set                    |               Replication Controller                |
+--------------------------------------------------+-----------------------------------------------------+
| Replica Set supports the new set-based selector. | Replication Controller only supports equality-based |
| This gives more flexibility. for eg:             | selector. for eg:                                   |
|          environment in (production, qa)         |             environment = production                |
|  This selects all resources with key equal to    | This selects all resources with key equal to        |
|  environment and value equal to production or qa | environment and value equal to production           |
+--------------------------------------------------+-----------------------------------------------------+
2.第二件事是更新POD

+-------------------------------------------------------+-----------------------------------------------+
|                      Replica Set                      |            Replication Controller             |
+-------------------------------------------------------+-----------------------------------------------+
| rollout command is used for updating the replica set. | rolling-update command is used for updating   |
| Even though replica set can be used independently,    | the replication controller. This replaces the |
| it is best used along with deployments which          | specified replication controller with a new   |
| makes them declarative.                               | replication controller by updating one pod    |
|                                                       | at a time to use the new PodTemplate.         |
+-------------------------------------------------------+-----------------------------------------------+

这是区分RS和RC的两个方面。RS部署由于更具声明性而被广泛使用

副本控制器和副本集的功能是相同的-他们负责确保将标签数量等于标签选择器的POD调度到集群上的不同节点。
(其中X是在副本控制器/副本集yaml中的
spec.replicas
字段中指定的值)

ReplicaSet是副本控制器的替代品,支持更丰富的标签选择器表达式。 您可以在4个运算符值中选择
In、NotIn、Exists、DoesNotExist
-请参阅

<强>经验法则:当您在一个文档或其他教程中提到副本控制器时,将其称为副本集,并考虑使用部署。


副本控制器之间的语法也有一点不同:

apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    app: nginx
以及包含
选择器下的
匹配标签
字段的复制集:

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels: #<-- This was added
      tier: nginx
apiVersion:apps/v1 种类:复制集 元数据: 姓名:nginx 规格: 副本:3份 选择器:
matchLabels:#我现在有同样的问题。我想部署和复制集将取代ReplicationController。糟糕的是,目前几乎所有的文档都是关于ReplicationController的。值得一提的是,Replication Controller在将来将被弃用,而副本集将成为Pod控制的事实标准。资料来源:库伯内特斯行动我是库伯内特斯的新手。当我创建一个部署(kubectl运行)时,也会创建一个复制集。我们还必须使用复制控制器吗?文档现在说:副本集是下一代复制控制器。目前,副本集和复制控制器之间的唯一区别是选择器支持。他们为什么要创建一种新型的rc。