Kubernetes 多状态集 pods 通信

时间:2021-02-03 23:38:39

标签: kubernetes kubernetes-statefulset statefulset

在同一个 stateful set afaik 中,您可以通过直接引用特定 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 等)。是否有可能?如果是,您能否提供示例配置?

1 个答案:

答案 0 :(得分:3)

<块引用>

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

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

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

来自StatefulSet documentation

<块引用>

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