Replicaset如何包含具有特定标签的pod

问题描述 投票:0回答:1

如果我给pod提供一些特定的标签并定义replicaset说包含具有相同标签的pod,则它包含该pod。这一切都很好,很好..

(我知道pod不是单独创建的,但是应该使用部署或复制来创建..但仍然如何部署/复制包含其标签在定义中匹配的pod,如果它们因某种原因已经存在)

但是,这是如何在幕后工作的? replicaset如何知道要包含pod,因为它具有相同的标签?可以说,我已经有了一个带有这些标签的pod,如果pod的容量小于所需的pod数,那么新创建的副本集如何知道要包含pod?

它是否从etcd获得该信息?或者pod以某种方式暴露标签?这个东西如何在幕后工作?

kubernetes replicaset pod
1个回答
0
投票

正如Kubernetes关于ReplicaSet的文档中所述。

ReplicaSet是使用字段定义的,包括指定如何识别它可以获取的Pod的选择器,指示它应该维护多少Pod的多个副本,以及一个pod模板,用于指定它应该创建的新Pod的数据以满足该数量复制品标准。然后,ReplicaSet通过根据需要创建和删除Pod来达到其目的,以达到所需的数量。当ReplicaSet需要创建新Pod时,它使用其Pod模板。

建议使用Deployments而不是ReplicaSets

Deployment是一个对象,它可以拥有ReplicaSet并通过声明性的服务器端滚动更新来更新它们和它们的Pod。虽然ReplicaSet可以独立使用,但今天它们主要被Deployments用作协调Pod创建,删除和更新的机制。使用“部署”时,您不必担心管理它们创建的副本集。部署拥有并管理其ReplicaSet。因此,建议您在需要ReplicaSet时使用“部署”。

就像你提到的,如果你有一个Pod标签与ReplicaSet标签匹配,ReplicaSet将控制pod。如果你部署ReplicaSet有3个副本并且之前部署了Pod,那么RS将只生成带有匹配标签的2个Pods。有关Non-Template Pod acquisitions的详细信息和示例进行了解释。

至于它如何在幕后工作,你可以看看Kubernetes Architecture - beyond a black box - Part 1的#47-56幻灯片

© www.soinside.com 2019 - 2024. All rights reserved.