基于Istio版本的路由导致404

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Istio版本的路由导致404相关的知识,希望对你有一定的参考价值。

我正在尝试使用istio在我的k8s集群中的微服务之间进行路由。

在这个例子中,我有以下应用程序

前端:需要联系后端的v1:v1前端:需要联系后端的v2:v2

我已经创建了所需的istio配置并且没有路由选项的响应但是当我尝试设置路由规则以便标签app = frontend和version = v1的流量被路由到后端v1子集时,我收到错误404。

以下是我当前VirtualService的示例:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend-vs
spec:
  hosts:
   - "backend.backend.svc.cluster.local"
  http:
  - match:
    - sourceLabels:
        app: frontend
        version: v1
    route:
    - destination:
      host: backend.backend.svc.cluster.local
      subset: v1
      port:
        number: 5000

最终,我希望能够控制前端的哪个版本转到后端的版本化子集,并独立迭代这些微服务。

目前istio返回404错误。

如果我删除sourceLabels匹配,我可以从前端pod访问后端服务。

TIA

答案

我只能通过调整服务到前端Pod并在类似场景中的测试环境中添加相关标签来使这条路由与sourceLabels:匹配标准一起工作;到目前为止已知问题#7787

以上是关于基于Istio版本的路由导致404的主要内容,如果未能解决你的问题,请参考以下文章

使用Istio控制Serverless架构Fn Project中的函数间流量路由

跨语言微服务框架 - Istio官方示例(自动注入.请求路由.流量控制.故障注入)

Codeigniter - AngularJS 路由导致 404

在 Istio VS 中基于 URI 前缀将请求路由到服务

Istio系列学习----Istio的路由规则配置:VirtualService

istio 0.5.0 新特性:流量镜像