我们都知道在kubernetes集群中使用入口作为解决方案,以解决基于kubernetes集群的多种服务的基于路径/上下文/ URL的路由。但是,我的要求有些不同。我有2个集群-托管了EU n US地区。这两个集群在美国集群中托管不同的应用程序集app1,app2,而在欧洲集群中托管app3和app4。现在,我需要一个位于集群外部的入口类型路由器,对于所有应用程序,我都有一个通用的入口点,例如,对于美国集群,www.example.com/us对于欧盟集群,www.example.com/eu。然后,每个群集上的相应入口将基于应用或 www.example.com/app1,/ app2,/ app3等基于应用程序,这些路由被路由到正确的群集,然后将fwds导入以纠正该群集中的服务。
我有我的自定义域www.example.com,但是我在网络层中用来实现到2个群集的基于上下文/路径的路由的解决方案或产品是什么? DNS团队表示,这无法在DNS级别上实现,其他负载平衡器会遵循轮询等类型的算法,这些算法都需要两个群集上的所有4个应用程序,但这对我来说不是一个可行的解决方案。有人可以建议在这里做什么吗?我的kubernetes集群在IBM Cloud中。我无法提供冗余服务,但是两个群集都需要通用的入口点。
答案 0 :(得分:1)
您可以查看IBM Cloud API Gateway服务。
在此示例中,我使用IBM ID登录到cloud.ibm.com,所有步骤均在UI中完成。我已经使用Lite计划(免费)创建了API Gateway服务的实例。
要尝试访问IBM Cloud API Gateway,请为您的API网关服务实例选择一个有意义的名称,然后点击“创建”按钮。
下一步,找到“创建API代理”按钮,单击它,然后在下一个屏幕中为您的API选择一个名称,例如USA,指定基本路径/ us并复制基于美国的应用程序的URL。
重复此步骤并选择其他名称(例如EU),这一次指定基本路径/ eu并复制基于EU的应用程序的URL。
现在,您所拥有的设置与您一直在寻找的非常接近。两个API代理共享相同的默认域,并且将路径'/ us'的请求路由到基于美国的应用程序,而将路径'/ eu'的请求路由到基于EU的应用程序。
要将默认域替换为您的自定义域,您需要导航到“ API管理”->“自定义域”并提供详细信息。
我希望这会有所帮助。我尝试了一个IBM Cloud Cloud Foundry示例应用程序作为EU的应用程序,一个IBM Cloud Code Engine应用程序作为基于美国的应用程序的设置,并且通过此简单测试,所有操作均与API Gateway实例的默认域一样正常。
在您的应用程序在IBM Cloud的Kubernetes集群上运行的情况下,如果这仍然可行,请发表评论。