在Kubernetes中使用静态IP进行入口/出口

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

我有一个程序,我试图在Kubernetes集群中运行。该程序是一个说非标准UDP协议的服务器。该协议主要由短请求/回复对组成,类似于DNS。与DNS的一个主要区别是“服务器”和“客户端”都可以发送请求,即。通信可以由任何一方发起。

客户端是使用服务器的IP地址配置的嵌入式设备。客户端将其请求发送到此IP。他们还检查传入的消息是否来自此IP,丢弃来自其他IP的消息。

我的问题是如何使用Kubernetes来设置服务器

  1. 服务器接受特定IP上的传入UDP消息。
  2. 服务器可以看到真实客户端源IP。
  3. 服务器发送的任何回复(或其他消息)都具有与其源相同的IP(以便客户端接受它们)。

我试过的一件事是行不通的是用Servicetype: LoadBalancer建立一个externalTrafficPolicy: Local(后者保留了要求2的源IP)。此设置满足上面的要求1和2,但由于出站消息不通过负载均衡器,因此它们的源IP是运行包含服务器的pod的任何节点的源IP。

我在Google Cloud Platform(GKE)上运行Kubernetes。

kubernetes google-cloud-platform udp google-kubernetes-engine nat
1个回答
0
投票

请按以下说明验证解决方案: 1. Kubernetes.., c)具有Type = LoadBalancer的服务的源IP - 将部署公开为: - type = LoadBalancer - 设置service.spec.externalTrafficPolicy:'{“spec”:{“externalTrafficPolicy”:“Local”}}'

使用示例“echoserver”中描述的图像返回我的公共地址。

© www.soinside.com 2019 - 2024. All rights reserved.