在相同的有状态集合中,您可以通过直接引用特定的pod来进行交互,例如-pod-{0..N-1}.my_service.my_namespace.svc.cluster.local
。(更多信息在这里:https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#stable-network-id)。
然而,在我的情况下,我有2个不同的状态集,我希望能够从第一个状态集的statefullset1-pod-0
与第二个状态集的statefullset2-pod-0
交互(以及statefullset1-pod-1
与statefullset2-pod-1
,等等)。这可能吗?如果是,能否提供举例配置?
然而,在我的情况下,我有2个不同的有状态集,我希望能够从第一个有状态集的statfullset1 -pod-0与第二个有状态集的statfullset2 -pod-0进行交互(以及statfullset1 -pod-1与statfullset2 -pod-1,等等)。这可能吗?如果是,能否提供举例配置?
是的,你的应用程序可以访问其他StatefulSet
,因为它访问集群中的任何其他服务,使用服务的DNS名称。例如,如果你在同一个命名空间中创建了服务statefullset2-pod-0
,如果它是http服务,你可以用http://statefullset2-pod-0
访问它。
请记住,对于StatefulSet,您有责任自己创建pod身份服务。
来自StatefulSet文档:
StatefulSets目前需要一个Headless Service来负责pod的网络身份。您有责任创建此服务。