我们都知道在kubernetes集群中使用ingress作为基于路径/上下文/url的路由解决方案,用于托管在kubernet集群上的多个服务。然而,我的要求有点不同。我有两个集群——欧盟和美国地区。这两个集群在美国集群中托管不同的应用程序集app1、app2,而在欧盟集群中托管app3和app4。现在,我需要一个位于集群外部的入口类型路由器,我为所有应用程序都有一个公共入口点,即www.example.com/us(美国集群(和www.example.com/eu(欧盟集群(。然后每个集群上对应的入口将基于应用程序OR进行路由www.example.com/app1、/app2、/app3等,基于路由到正确集群的应用程序,然后将fwd入口到该集群中的正确服务。
我有我的自定义域www.example.com,但我在网络层中使用的解决方案或产品是什么,可以实现到2个集群的基于上下文/路径的路由?DNS团队表示,这无法在DNS级别实现,其他负载均衡器遵循循环等类型的算法,这需要两个集群上的所有4个应用程序,但这对我来说不是一个可行的解决方案。有人能在这里建议该怎么办吗?我的kubernetes集群位于IBM云中。我不能有多余的服务,但需要两个集群的公共入口点。
您可以查看IBM Cloud API网关服务。
在这个例子中,我使用我的ibm ID登录cloud.ibm.com,所有步骤都在UI中完成。我用Lite计划创建了一个API网关服务实例(免费(。
要尝试一下,请转到IBM Cloud API网关,为API网关服务的实例选择一个有意义的名称;创建";按钮
作为下一个步骤;创建API代理";,点击它,在下一个屏幕中为您的API选择一个名称,例如美国,指定基本路径/us并复制您的美国应用程序的URL。
重复此步骤并选择不同的名称(例如EU(,这一次指定基本路径/EU并复制基于EU的应用程序的URL。
现在你有了一个非常接近你一直在寻找的设置。两个API代理共享相同的默认域,路径"/us"的请求路由到基于美国的应用程序,路径"/eu"的请求则路由到基于欧盟的应用程序。
要用您的自定义域替换默认域,您需要导航到";API管理->quot;自定义域"并提供详细信息。
我希望这能有所帮助。我尝试使用IBM Cloud Cloud Foundry示例应用程序作为欧盟的应用程序,使用IBM Cloud Code Engine应用程序作为基于美国的应用程序进行设置,对于这个简单的测试,一切都与我的API网关实例的默认域一样工作。
请评论这是否也适用于您的应用程序在IBM云中的Kubernetes集群上运行的情况。