如何在 Istio 中配置 Azure 应用程序网关

vis*_*l.k 1 azure kubernetes azure-application-gateway istio

我在 AKS(Azure Kubernetes 服务)上设置了一个应用程序,并且 I\xe2\x80\x99m 当前使用 Azure 应用程序网关作为在 AKS 上运行的应用程序的入口资源。

\n\n

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

\n\n

在此输入图像描述

\n

Pio*_*lec 5

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

\n

让 istio 与 Azure 应用程序网关配合使用比看起来要复杂得多。

\n

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

\n

并附有以下声明:

\n
\n

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

\n
\n

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

\n
\n

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

\n

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

\n
\n

入口流量

\n

Istio 希望流量通过 Ingress Gateway。当您看到 \xe2\x80\x98unknown\xe2\x80\x99 流量时,很可能是您使用标准 Kubernetes Ingress 或 OpenShift 路由将流量从外部发送到 Istio。

\n
\n

Azure 应用程序网关使用自定义入口控制器:

\n
\n

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

\n

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

\n

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

\n
\n

基亚利介绍文档:

\n
\n

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

\n
\n
\n

解决您的附加问题:

\n
\n

我该如何向 ISTIO 确定它是 Azure 应用程序网关而不是 \xe2\x80\x9cunknown\xe2\x80\x9d 资源。

\n
\n

据我所知,没有办法让自定义(非 istio)Ingress Gateway 成为 istio 网格的一部分。将 Azure 应用程序网关标记为 \xe2\x80\x9cunknown\xe2\x80\x9d。

\n

希望这可以帮助。

\n