【问题标题】:How to configure Azure App Gateway in Istio如何在 Istio 中配置 Azure 应用网关
【发布时间】:2020-05-23 14:29:46
【问题描述】:

我在 AKS(Azure Kubernetes 服务)上设置了一个应用程序,我目前正在使用 Azure 应用程序网关作为我在 AKS 上运行的应用程序的入口资源。

现在,在为我的集群设置 ISTIO 之后,除了一部分之外,这些图表都可以正常显示。由于 ISTIO 不知道 Azure APP 网关,因此它会将资源显示为“未知”。我什至尝试启动一个虚拟服务并将其指向入口资源,但这对图表没有任何影响。我应该如何向 ISTIO 确定它是 Azure 应用程序网关而不是“未知”资源。

【问题讨论】:

    标签: azure kubernetes istio azure-application-gateway


    【解决方案1】:

    AFAIK,istio 需要自己的应用程序入口网关。

    创建一个 istio VirtualService 并将其指向 istio's ingress gateway。执行此操作的步骤是herehere

    应用程序的 Istio 入口网关可以在 kubectl get gateway 的输出中看到:

    $ kubectl get gateway
    NAME               AGE
    bookinfo-gateway   32s
    

    【讨论】:

    • 问题显然是关于如何使用 Azure 网关。我知道 Istio 提供了他们自己的网关,我也设置了一个。
    【解决方案2】:

    这是因为 Azure 应用程序网关不是 Istio Mesh 的一部分。根据您配置 Azure 应用程序网关的方式,您甚至可能无法获得使用 istio 的任何好处。

    让 istio 与 Azure 应用程序网关一起工作比看起来要复杂得多。

    有一个Github 同时使用 istio 和 Azure 应用程序网关的问题。

    用下面的语句:

    您可能想知道为什么我选择将 ingress 资源放入 istio-system 命名空间。我这样做是因为据我了解, istio-ingress 必须是每个应用程序网关重定向的端点。如果我让它重定向到 echo-server 服务,AGKI(application-gateway-kubernetes-ingress) 将指向已部署 pod 的 ip-address,这将完全忽略 istios servicemesh。

    因此,如果还没有这样的配置并且您想使用 Istio,我建议将 Istio Ingress Gateway 设置为您的 Azure 应用程序网关的端点,并将其视为来自外部网格的流量。


    这里解释了为什么 Azure 应用程序网关是“未知”资源。

    this 文章中,您可以找到以下声明:

    入口流量

    Istio 期望流量通过 Ingress 网关。当您看到“未知”流量时,可能只是您使用标准 Kubernetes Ingress 或 OpenShift 路由将流量从外部发送到 Istio。

    Azure Application gateway 使用自定义入口控制器:

    应用程序网关入口控制器 (AGIC) 允许您将应用程序网关用作 Azure Kubernetes 服务 (AKS) 集群的入口。

    入口控制器作为 AKS 集群中的 pod 运行,并使用 Kubernetes 入口资源并将其转换为应用程序网关配置,该配置允许网关对流向 Kubernetes pod 的流量进行负载平衡。入口控制器仅支持应用程序网关 V2 SKU。

    有关详细信息,请参阅应用程序网关入口控制器 (AGIC)。

    根据Kiali 文档:

    在某些情况下,您可以在图表中看到从“未知”节点到您的服务的大量连接,因为网格外部的某些软件可能会定期 ping 或获取数据。当您设置 Kubernetes 活跃度探测器,或者将一些应用程序指标推送或暴露给 Prometheus 等监控系统时,通常会出现这种情况。也许您不希望看到这些联系,因为它们使图表更难阅读。


    解决您的其他问题:

    我应该如何向 ISTIO 确定它是 Azure 应用程序网关而不是“未知”资源。

    据我所知,没有办法让自定义(非 istio)入口网关成为 istio 网格的一部分。将 Azure 应用程序网关标记为“未知”。

    希望这会有所帮助。

    【讨论】:

    • 很好的解释。我也会自己研究一天,然后接受这个答案。
    • @piotr :您能否解释一下我们如何才能实现您在评论中提到的内容“所以如果还没有这样的配置并且您想使用 Istio,我建议将 Istio Ingress Gateway 设置为Azure 应用程序网关的端点,并将其视为来自外部网格的流量。” ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 2020-06-17
    • 1970-01-01
    相关资源
    最近更新 更多