我了解ReplicaSet和ReplicationController之间的区别,前者是基于Set的,后者是基于Equality的。我想知道的是为什么当较旧的ReplicationController实现相同功能时,引入了较新的实现(读取ReplicaSet)。
答案 0 :(得分:1)
ReplicaSet
通常不是独立的,它们是Deployment
所拥有的。一个新的Deployment
部署增加了一个ReplicaSet
,因此单个Version
的生命周期中可以有多个ReplicaSet
。
Deployment
使我们可以根据需要回滚到以前的稳定版本。
答案 1 :(得分:1)
Replicasets是复制控制器的更新版本
在Replication Controller中,存在基于等式的选择器
复制副本中有基于集合的选择器
副本盒也可以与部署一起使用,因此当您在自动生成和管理的kubernetes副本集中进行简单部署时,可以部署owned
副本集。
答案 2 :(得分:1)
我认为这可以归纳为以下3点。
1)ReplicaSet替代了Replica控制器,并支持标签选择器的更丰富的表达式。您可以在运算符In, NotIn, Exists, DoesNotExist
的四个值之间进行选择-参见Set-based requirement。
2)语法上的差别很小-ReplicaSet在选择器下包含matchLabels
字段:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels: #<-- This was added
tier: nginx
3)当您在文档或其他教程中看到“副本控制器”时-将其称为ReplicaSet并考虑改用Deployment。