我有一些 dockerized 微服务,每个都在某个端口上侦听 http 请求,并且我将这些部署形式化为 kubernetes yaml 文件
但是,我想不出一个可行的策略来在互联网上公开我的部署(就 kubernetes 服务而言)
每个部署都有多个副本,所以我假设每个部署都应该有一个匹配的负载均衡器服务来将它暴露给外部
现在我想不出将这些微服务明智地暴露在互联网上的策略......这就是我的想法:
整个集群暴露在一个域名上,服务是子域
- 说集群在
k8s.mydomain.com - 每个负载均衡器服务(暴露相应的微服务)都应该可以被子域访问
auth-server.k8s.mydomain.comprofile-server.k8s.mydomain.comquestions-board.k8s.mydomain.com- 因此对每个子域的请求将被负载平衡到匹配部署的副本
- 那么我该如何实现这个设置呢?这是可取的吗?
- 我可以将每个负载均衡器公开为子域吗?这是自动完成的吗?
- 还是我需要一个入口控制器?
- 我在叫错树吗?
- 我正在寻找有关如何公开作为微服务镶嵌的单个应用程序的一般建议
- 说集群在
每个服务都暴露在相同的 ip/域上,但每个服务都有自己的端口
- 也许整个集群可以
k8s.mydomain.com再次访问 - 我可以将每个端口映射到不同的负载均衡器吗?
k8s.mydomain.com:8000映射到auth-server-loadbalancerk8s.mydomain.com:8001映射到profile-server-loadbalancer
- 这可能吗?与上述策略 1 相比,它似乎不太稳健且不太理想
- 也许整个集群可以
每个服务都暴露在自己的 IP/域上?
- 也许每个服务都指定一个静态 ip,而我的域有 A 记录以手动方式将每个子域指向这些 ip 中的每一个?
- 我怎么知道要使用哪个静态 IP?在生产中?在本地开发中?
也许我在概念化这个错误?整个 Kubernetes 集群可以映射到一个 IP/域吗?
在 Kubernetes 中公开一堆微服务的最简单方法是什么?另一方面,在生产中公开微服务的最稳健/最理想的方式是什么?在 minikube 中,我是否需要不同的本地发展策略?(我只是要编辑/etc/hosts很多)
谢谢你的建议,干杯