从Pod到Pod的通信

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

我有一个有2个pod的节点。每个吊舱都需要相互通话。问题是我不想硬编码用于通信的IP。

与DNS服务类似,我需要一些东西(不会改变),它可以位于pod ip之上,并允许我在pod之间进行通信。

kubernetes
1个回答
5
投票

我可以看到两个解决方案

解决方案1:使用服务

如果他们不是来自同一个控制器,并且他们有自己的服务,他们可以使用服务相互通信。

Service 1 - > Pod 1
Service 2 - > Pod 2

使用此服务

Pod 1: Service 2 -> Pod 2
Pod 2: Service 1 -> Pod 1

解决方案2:使用StatefulSet

如果他们需要相同的Controller,您可以使用StatefulSet

对于具有N个副本的StatefulSet,StatefulSet中的每个Pod将被赋予一个整数序数,其范围为[0,N],在Set上是唯一的

这意味着Pod名称将是:$(statefulset name)-$(ordinal)

如果你有一个名为nginx且带有副本2的StatefulSet,你将拥有两个Pod nginx-0nginx-1

在创建每个Pod时,它将获得匹配的DNS子域,采用以下格式:$(podname).$(governing service domain)

Pod qazxsw poi:qazxsw poi - > qazxsw poi

Pod qazxsw poi:qazxsw poi - > qazxsw poi

使用这个nginx-0,这些Pod可以相互通信。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.