我看到的所有文档都说明标签对于定义pod的逻辑集很有用,并且服务使用它来选择pod。
但是服务似乎是您避免动态解析pod实例的IP的接口。
据我了解,服务只能(或者意味着)由pods副本组成(如果不是,那么重点是什么?)。如果是这样,标签和逻辑划分有什么意义?我们不能简单地指出pod id吗?或者让一些副本在服务下响应而其他副本在另一个服务下响应是否有意义?
答案 0 :(得分:1)
实际上,服务与Deployments,ReplicaSets或ReplicationControllers等无直接关系。服务是一个抽象的定义标准, Pod 标签必须满足这些标准才能被视为给定服务的端点。这很有道理,因为你可以。有多个Deployments / ReplicaSet(每个都有0个或更多pod)作为某些服务的后端。想想像金丝雀释放这样的概念。此外,pod在设计上是易变的,它们可以来去,而选择器定义了一个"查询"在任何给定时间返回所有作为此svc后端的pod。想象一下,如果您的pod被新的pod替换,并且您在服务中通过pod id引用它,会发生什么。