ReplicaSet是什么意思

54次阅读
没有评论

共计 1372 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章给大家介绍 ReplicaSet 是什么意思,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

ReplicaSet 与 ReplicationController 类似,它也用于管理一类 Pod 对象,保证 Pod 副本数量始终维持在期望值。

ReplicaSet 配置

一个简单的 ReplicaSet 配置如下所示:

apiVersion: apps/v1
kind: ReplicaSet
metadata:
 name: replicaset-runs-pod
spec:
 replicas: 3
 selector:
 matchLabels:
 app: nginx
 template:
 metadata:
 labels:
 app: nginx
 spec:
 containers:
 - name: nginx
 image: nginx:1.19.0

该 ReplicaSet 配置确保集群中始终运行 3 个拥有 app: nginx 标签的 Pod 副本,如果副本数量不足 3 个,则使用 Pod 模版 spec.template 创建 Pod,如果副本数量多于 3 个,则删除多余的副本。

ReplicaSet 配置中最核心的三个要素如下:

spec.selector 用于查找集群中存在的 Pod;

spec.replicas 用于指定期望的 Pod 副本数;

spec.template 用于指定 Pod 模版,当副本数不足时将使用该模版创建新的 Pod。

ReplicaSet 与 ReplicationController 的区别

ReplicationController 和 ReplicaSet 都属于 Pod 控制器,其设计初衷几乎完全相同,都是确保指定类型的 Pod 副本数维持在期望值,ReplicationController 出现时间比 ReplicaSet 要早,那么为什么已经有了 ReplicationController 的情况下,还要再设计一个 ReplicaSet 呢?二者到底有什么区别呢?

二者的主要区别在于标签选择器,ReplicaSet 拥有更先进的标签选择器,ReplicationController 只支持旧式的标签选择器,而 ReplicaSet 不仅支持旧式选择器,还支持新式选择器。

ReplicationController 支持的选择器称为 Equality-based 选择器,即基于等值的选择器:

Selector map[string]string

ReplicaSet 不仅支持 Equality-based 选择器,还支持 Set-based 选择器,即基于集合的选择器:

type LabelSelector struct {MatchLabels map[string]string
 MatchExpressions []LabelSelectorRequirement}

ReplicationController 特性演进到 V1 时还没有支持 Set-based 选择器,而 Kubernetes 又希望推出一款支持 Set-based 选择器的 Pod 控制器,为了不破坏 API 兼容性,不得已才推出了 ReplicaSet 控制器来替代 ReplicationController。

关于 ReplicaSet 是什么意思就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-17发表,共计1372字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)