2017-11-10 70 views
0

我有一個部署istio是注入訪問谷歌地圖距離矩陣API。如果我用--includeIPRanges 10.0.0.0/8運行istioctl kube-inject,它似乎可以工作。如果刪除該標誌,而是應用出口規則將無法正常工作:出口Istio規則將不起作用

apiVersion: config.istio.io/v1alpha2 kind: EgressRule metadata: name: google-egress-rule namespace: microservices spec: destination: service: "maps.googleapis.com" ports: - port: 443 protocol: https - port: 80 protocol: http

兩個,部署和出口規則都在同一個命名空間(微服務)。

任何想法,我的錯在哪裏?

回答

2

從我看到的運行curl maps.googleapis.com,它重定向到https://developers.google.com/maps/

兩個問題在這裏:

  1. 你必須指定developers.google.com
  2. 額外EgressRule目前你已通過發出HTTP請求到端口443,像curl http://developers.google.com/maps:443訪問HTTPS外部網站。 Istio代理將爲您打開一個https連接到developers.google.com。不幸的是,除了使用--includeIPRanges之外,目前沒有其他辦法可以做到這一點。
+0

謝謝Vadim,maps.googleapis.com此時不做重定向,這隻適用於根域(也是我的第一個假設)。正如你在問題2中已經告訴的那樣,我必須使用帶有443的http作爲端口值。問題在於Java SDK在其中有一個固定的URL ......但帶有一些反思魔術;-)這是可能的。 謝謝你的回答:-) – user3232739

+0

很高興聽到它幫助:) –