kubernetes - 基于Istio版本的路由导致404

标签 kubernetes routing microservices istio

我正在尝试使用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匹配项,则可以从前端 Pane 访问后端服务。

TIA

最佳答案

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

关于kubernetes - 基于Istio版本的路由导致404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55622796/

相关文章:

docker - 如何在本地环境中协调多个微服务?

Azure Kubernetes 服务 : How to setup taint to whole node pool?

Azure Kubernetes - 使用环境变量覆盖 configmap 值?

networking - 网络系统帮助 : How to route an external request, 通过主机名到内部 ip?

php - 使用路由器映射多个路由( Controller )

spring-boot - 在微服务 REST API 调用中返回对象列表是不好的做法吗?

spring-boot - Zuul 和 Netflix Ribbon 的用例

amazon-web-services - 如何使用 nginx ingress 将流量从 route53 中的域转发到 pod?

kubernetes - 无法在 openshift 3.11 中更新节点导出器的 tls-cipher-suites

angular - 使用路由在 Angular 6 中打开新的浏览器窗口