基于Istio版本的路由导致404

时间:2019-04-10 23:49:21

标签: kubernetes routing microservices istio

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

在此示例中,我具有以下应用程序

frontend: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匹配项,则可以从前端窗格访问后端服务。

TIA

1 个答案:

答案 0 :(得分:1)

在类似情况下,通过使服务适应前端Pod并在我的测试环境中添加相关标签,我只能使该路由符合sourceLabels:匹配条件。到目前为止已知的问题#7787