无法从istio访问外部mongo数据库服务器

时间:2018-10-17 14:46:10

标签: mongodb kubernetes istio envoyproxy

我正在尝试使用istio和envoy为需要连接到外部mongodB服务器的服务实现服务网格,但是由于某些原因,我的服务无法从istio代理访问外部mongodB服务器

下面是我的服务的网关和虚拟服务配置

    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: gtreviews
    spec:
      selector:
        istio: ingressgateway
      servers:
      - port:
          number: 7890
          name: http
          protocol: GRPC
        hosts:
        - "*"
---
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: reviews
    spec:
      hosts:
      - "*"
      gateways:
      - gtreviews
      http:
      - match:
        - uri:
            prefix: "/reviews"
        route:
        - destination:
            port:
              number: 8080
            host: reviews.istio-system.svc.cluster.local

我添加了出口服务条目,但仍然无法使用

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: external-svc-mongocluster
spec:
  hosts:
  - xxx.xx.com
  ports:
  - name: mongo
    number: 27017
    protocol: tcp
  location: MESH_EXTERNAL  

---

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: external-svc-mongocluster
spec:
  hosts:
  - xxx.xx.com
  tcp:
  - match:    
    route:
    - destination:
        host: xxx.xx.com
        port:
          number: 27017
      weight: 100

1 个答案:

答案 0 :(得分:2)

尝试将ServiceEntry中的端口指定为TLS(名称和协议)。

我现在正在处理有关MongoDB的任务,请检查此PR https://github.com/istio/istio.io/pull/2347/中的“ TLS的出口控制”部分,这还有些原始。