我正在尝试使用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/