是否可以在不同端口上的单个IP上公开不同端口的pod应用程序,例如
microservices-cart LoadBalancer 10.15.251.89 35.195.135.146 80:30721/TCP
microservices-comments LoadBalancer 10.15.249.230 35.187.190.124 80:32082/TCP
microservices-profile LoadBalancer 10.15.244.188 35.195.255.183 80:31032/TCP
看起来像
microservices-cart LoadBalancer 10.15.251.89 35.195.135.146 80:30721/TCP
microservices-comments LoadBalancer 10.15.249.230 35.195.135.146 81:32082/TCP
microservices-profile LoadBalancer 10.15.244.188 35.195.135.146 82:31032/TCP
通常使用入口资源来重用相同的外部IP。
见https://kubernetes.io/docs/concepts/services-networking/ingress/
但是你必须使用路径而不是端口进行路由。
一种可能的解决方案是结合NodePort和反向代理。 NodePort在所有节点上的不同端口上公开pod。反向代理充当入口并将流量重定向到节点。
不管怎样,你必须整合到同一个吊舱上。
您可以创建将每个端口代理到适当服务的部署。有很多方法可以创建TCP代理 - 通过nginx,节点通过包,有一个由Google维护的Go包;无论你最舒服的是什么。