【问题标题】:Egress Istio rule won't work出口 Istio 规则不起作用
【发布时间】:2018-04-24 06:28:46
【问题描述】:

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

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

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

知道我的错在哪里吗?

【问题讨论】:

    标签: kubernetes istio


    【解决方案1】:

    根据我通过运行curl maps.googleapis.com 看到的,它重定向到https://developers.google.com/maps/

    这里有两个问题:

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

    【讨论】:

    • 谢谢 Vadim,此时 maps.googleapis.com 不进行重定向,这仅适用于根域(也是我的第一个假设)。正如您在第 2 期中已经说过的,我必须使用带有 443 的 http 作为端口值。问题出在Java SDK中有一个固定的URL......但有一些反射魔法;-)它是可能的。谢谢你的回答:-)
    • 很高兴听到它有帮助:)
    猜你喜欢
    • 2019-06-09
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2014-01-21
    • 2022-01-13
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    相关资源
    最近更新 更多