首页 > 解决方案 > Kubernetes 多状态集 pods 通信

问题描述

在同一个有状态集合 afaik 中,您可以通过直接引用特定 pod 在特定 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-1statefullset2-pod-1,等等)进行交互。可能吗?如果是,您能否提供示例配置?

标签: kuberneteskubernetes-statefulsetstatefulset

解决方案


但是,在我的情况下,我有 2 个不同的有状态集,我希望能够从第一个有状态集的 statefullset1-pod-0 与来自第二个有状态集的 statefullset2-pod-0 交互(以及 statefullset1-pod-1 和 statefullset2-pod -1,以此类推)。可能吗?如果是,您能否提供示例配置?

是的,您的应用程序可以访问其他应用程序,StatefulSet因为它访问集群中的任何其他服务,使用服务的 DNS 名称。例如,如果您statefullset2-pod-0在同一个命名空间中创建了服务,那么http://statefullset2-pod-0如果它是一个 http 服务,您就可以访问它。

请记住,对于 StatefulSet,您有责任自己创建 Pod 身份服务。

StatefulSet 文档

StatefulSets 目前需要一个 Headless Service 来负责 Pod 的网络身份。您负责创建此服务。


推荐阅读