出口 Istio 规则将不起作用

Egress Istio rule won't work

我有一个部署 istio 被注入,可以访问 google 地图距离矩阵 api。如果我 运行 istioctl kube-inject 与 --includeIPRanges 10.0.0.0/8 它似乎工作。如果我删除此标志并改为应用出口规则,它将不起作用:

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

部署和出口规则都在同一个命名空间(微服务)中。

知道我的错在哪里吗?

据我所见 运行 curl maps.googleapis.com,它重定向到 https://developers.google.com/maps/

这里有两个问题:

  1. 您已为 developers.google.com
  2. 指定额外的 EgressRule
  3. 目前您必须通过向端口 443 发出 http 请求来访问 https 外部站点,例如 curl http://developers.google.com/maps:443。 Istio 代理将为您打开到 developers.google.com 的 https 连接。不幸的是,目前没有其他方法可以做到这一点,除了使用 --includeIPRanges.