为什么在Kubernetes中引入ReplicaSet?

时间:2019-03-12 06:56:04

标签: kubernetes replicaset

我了解ReplicaSet和ReplicationController之间的区别,前者是基于Set的,后者是基于Equality的。我想知道的是为什么当较旧的ReplicationController实现相同功能时,引入了较新的实现(读取ReplicaSet)。

3 个答案:

答案 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。