我有一个要在Kubernetes集群中运行的程序。 该程序是使用非标准UDP协议的服务器。 该协议主要由短请求/应答对组成,类似于DNS。 与DNS的主要区别在于“服务器”和“客户端”都可以发送请求,即。通信可以由任何一方发起。
客户端是配置有服务器IP地址的嵌入式设备。 客户端将他们的请求发送到该IP。 他们还会检查传入消息是否源自此IP,并丢弃来自其他IP的消息。
我的问题是我如何使用Kubernetes来设置服务器,这样
我尝试过的不起作用的一件事是用Service
和type: LoadBalancer
设置externalTrafficPolicy: Local
(后者用于保留要求2的源IP)。
此设置满足上述要求1和2,但是由于出站消息不会通过负载平衡器,因此其源IP是运行服务器的Pod所在的任何节点的IP。
我正在Google Cloud Platform(GKE)上运行Kubernetes。
答案 0 :(得分:0)
请按照以下说明验证解决方案:
1. Kubernetes..,
c)具有 Type = LoadBalancer
的服务的源IP
-将部署公开为:-type = LoadBalancer
-设置 service.spec.externalTrafficPolicy:'{“ spec”:{“ externalTrafficPolicy”:“ Local”}}'
使用示例“ echoserver”中描述的图像将返回我的公共地址。