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