【发布时间】:2020-10-09 01:02:18
【问题描述】:
我已经设法在根路径中运行了一个 grpc 服务。但是我试图通过在虚拟服务中添加自定义路径路由来添加更多的 grpc 服务,但这不起作用。任何帮助将不胜感激。
这是网关:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: my-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
我有这个虚拟服务路由到只有一个 grpc 服务并且工作正常
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-virtual-svc
spec:
hosts:
- "*"
gateways:
- my-gateway
http:
- name: "my-grpc-1"
match:
- uri:
prefix: "/"
route:
- destination:
port:
number: 9090
host: my-grpc-1-svc
但我想尝试以下类似的方法,但 它不起作用
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-virtual-svc
spec:
hosts:
- "*"
gateways:
- my-gateway
http:
- name: "my-grpc-1"
match:
- uri:
prefix: "/my-grpc-1"
route:
- destination:
port:
number: 9090
host: my-grpc-1-svc
- name: "my-grpc-2"
match:
- uri:
prefix: "/my-grpc-2"
route:
- destination:
port:
number: 9090
host: my-grpc-2-svc
【问题讨论】:
-
您是否尝试将网关对象中的协议字段更改为
grpc? -
您好@Prata,您的问题解决了吗?
-
@DawidKruk 我不能将此路径前缀匹配用于单独的 grpc 服务,但我所做的是我在入口控制器中为不同的 grpc 服务打开不同的端口
-
@Prata 很高兴您找到了解决方法。请考虑自己创建答案,以提高知名度并向社区展示可能的解决方法。
标签: kubernetes grpc istio