xring/blog

Istio 中配置服务访问外部 gRPC

Closed this issue · 0 comments

xring commented

一般使用 Istio 都会配置拦截对外访问的地址范围为所有,此时需要访问外部服务如第三方提供的服务需要通过添加 ServiceEntry 的方式来实现。

我们集成某第三方服务,对接接口采用 gRPC,地址为 1.1.1.1:99991.1.1.1:10101,则需要配置如下 ServiceEntry 来放行相关流量:

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: external-apm
spec:
  hosts:
  - outside.grpc.xxx # not used
  addresses:
  - 1.1.1.1/32 # VIPs
  ports:
  - number: 9999
    name: tcp-1
    protocol: TCP
  - number: 10101
    name: tcp-2
    protocol: TCP
  location: MESH_EXTERNAL
  resolution: STATIC
  endpoints:
  - address: 1.1.1.1

其中的 hosts 字段并不会被使用,由于指定了 resolution 策略为 STATIC,所以直接使用 endpoints 中的 address 找到目标服务。更多的参数和配置可以参考 Istio Service Entry Doc