我有一个程序,我试图在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。
请按以下说明验证解决方案: 1. Kubernetes.., c)具有Type = LoadBalancer的服务的源IP - 将部署公开为: - type = LoadBalancer - 设置service.spec.externalTrafficPolicy:'{“spec”:{“externalTrafficPolicy”:“Local”}}'
使用示例“echoserver”中描述的图像返回我的公共地址。