Kubernetes:在内部和外部公开多个服务
Kubernetes: Expose multiple services internally & externally
我正在为我的集群使用 AKS
场景:
我们有多个 API(比如 svc1、svc2 和 svc3 可在端口 101、102、103 上访问)。
这些 API 链接需要向客户端公开,并且也在应用程序内部使用。
问题:
我想将其暴露给同一端口上的外部和内部负载均衡器。
此外,当我在内部访问服务时,我希望可以通过服务名称访问它们(示例:svc1:101)
在 Kubernetes 中:
- 如果你想只在内部公开一些东西,你应该使用ClusterIP服务类型
- 如果你想同时公开内部和外部,请使用 LoadBalancer(或 NodePort)服务类型。
请查看Kubernetes: Service Types了解更多详情。
好吧,我能够在不使用 NodePort/ClusterIP 的情况下解决问题。
解决方案非常简单,但似乎没有记录。
我们唯一需要做的就是拥有多个标签,其中 1 个标签与外部负载均衡器的标签相同,而其他标签与您具有相同的匹配服务。
这会将您的副本集映射到服务和外部负载均衡器。
详细答案可在 - https://www.linkedin.com/pulse/exposing-multiple-portsservices-same-load-balancer-sunil-agarwal
我正在为我的集群使用 AKS
场景: 我们有多个 API(比如 svc1、svc2 和 svc3 可在端口 101、102、103 上访问)。 这些 API 链接需要向客户端公开,并且也在应用程序内部使用。
问题: 我想将其暴露给同一端口上的外部和内部负载均衡器。 此外,当我在内部访问服务时,我希望可以通过服务名称访问它们(示例:svc1:101)
在 Kubernetes 中:
- 如果你想只在内部公开一些东西,你应该使用ClusterIP服务类型
- 如果你想同时公开内部和外部,请使用 LoadBalancer(或 NodePort)服务类型。
请查看Kubernetes: Service Types了解更多详情。
好吧,我能够在不使用 NodePort/ClusterIP 的情况下解决问题。
解决方案非常简单,但似乎没有记录。
我们唯一需要做的就是拥有多个标签,其中 1 个标签与外部负载均衡器的标签相同,而其他标签与您具有相同的匹配服务。
这会将您的副本集映射到服务和外部负载均衡器。
详细答案可在 - https://www.linkedin.com/pulse/exposing-multiple-portsservices-same-load-balancer-sunil-agarwal