如何在Kubernetes上测试后端服务的不同版本?

时间:2019-02-07 09:14:21

标签: nginx kubernetes openshift reverse-proxy

我有一个前端实例(nginx上的Angular应用程序),它代理特定域(例如backend-app)下的后端调用。当后端和前端只有一个实例时,一切都很容易-我将服务命名为backend-app,DNS解析为正确的后端部署。

比方说,我有另一个后端版本,在合并之前,我想对其进行测试。由于前端实例的nginx配置被硬编码为代理到backend-api,因此无法为较新版本的后端创建相同名称的另一个Service。

我考虑了以下选项:

  1. 在运行时期间,在nginx代理配置中制作环境变量并替换域名。这样,我可以灵活地将前端呼叫路由到哪里。据我调查,此解决方案的缺点是,这种方法超出了自包含的目的,也就是说,前端的后端客户端是什么模棱两可,并且这种类型的配置容易出错。
  2. 每次我要测试事物时都要创建不同的命名空间。虽然这可以使整个堆栈旋转而不会出现任何问题或冲突,但在我看来,创建仅用于一次测试的名称空间是巨大的开销。
  3. 具有一些结合了标签和选择器的精美配置。我无法思考或找到方法。

您可能还有其他意见/建议吗?

2 个答案:

答案 0 :(得分:1)

尝试这种方法

将标签名称:backend-1添加到backend1 pod
将标签名称:backend-2添加到backend2 pod

使用backend-1选择器创建服务。

要针对其他后端(例如backend2)进行测试,您要做的就是编辑服务yaml文件并更新选择器。您可以切换此方式以在backend1和backend2之间进行测试

答案 1 :(得分:0)

您是否正在使用空档。如果是,则可以使用路由按百分比划分服务之间的负载。
检查蓝色/绿色和金丝雀部署选项以了解更多详细信息