问题描述
目前,我们正在使用负载均衡器类型的服务将外部请求路由到我们的一个 Pod。
我们希望将其移至入口类型服务(已经有一个外部负载均衡器设置以及入口控制器 - 我们确实有其他 pod 配置为通过此入口控制器接收外部请求)
我们现在拥有的是以下 url,客户端使用它进行外部连接:
ws://streamevents.app.com:7080/stomp
wss://streamevents.app.com:7443/stomp
我们想把它移到
ws://streameventsv2.app.com/stomp
wss://streameventsv2.app.com/stomp
通过这种方式,我们可以释放负载均衡器 IP 并且不需要特定端口。我们确实希望同时支持两个 url - 因为客户端已经连接到旧的。我们如何才能做到这一点?
我能想到的选项(我们使用 helm):
- 使用 Ingress 服务创建单独的图表和部署 - 旧的仍然使用 LoadBalancer
- 相同的图表 - 以两种方式公开服务(这真的可能吗?)
- 将当前的更改为 Ingress - 并以某种方式确保我们将请求路由到旧的 url 到新的 Ingress(如何?)
或者任何其他可能的方法?
解决方法
我猜您拥有舵图,因此您可以对其进行更改。如果是这样,您可以使用 Ingress 和 LoadBalancer 服务公开您的服务。除了添加 Ingress 资源之外,您不需要对掌舵图中的任何其他资源进行任何更改。当您可以停止支持它时,您可以删除 LoadBalancer 对象。