pwf*_*amy 3 openshift kubernetes istio
我无法理解入口和出口 istio 网关控制哪些流量。
让我们从一些理论开始。我发现很少有资料描述 istio 入口网关和出口网关的工作原理。
\n\n\nIstio 使用入口和出口网关来配置在服务网格边缘执行的负载均衡器。入口网关允许您定义所有传入流量流经的网格的入口点。出口网关是一个对称的概念;它定义了网格的退出点。出口网关允许您将 Istio 功能(例如监控和路由规则)应用于退出网格的流量。
\n
\n\n为了让我们的应用程序和服务提供任何有意义的内容,它们\xe2\x80\x99将需要\n与我们集群外部的应用程序进行交互。这可能是现有的整体应用程序、现成的软件、消息队列、数据库和第 3 方合作伙伴系统。\n为此,操作员需要配置 Istio 以允许流量进入集群,并非常具体地\n说明什么内容允许流量离开集群。\n提供此功能的 Istio 组件是istio-ingressgateway和\n istio-egressgateway。
\n
这是一张很好地展示了这一点的图片
\n\n\n\n\n入口网关充当网格内运行的所有服务的入口点。
\n
\n\n\n出口网关是网格的出口点,允许我们应用 Istio 功能。这包括对退出网格的流量应用监控和路由规则等功能。
\n
\n\n\n例如,应用程序在 MQ 队列上设置侦听器。这是入口或出口流量的示例吗?我认为当应用程序发起连接时,该流量将被定向到出口网关。相反,如果应用程序是端点,则流量必须通过入口网关路由。
\n
我不熟悉消息队列,但根据上图,我们假设消费者位于网格内部,因此生产者服务必须通过入口网关到达那里。
\n[生产者服务] -> 入口网关 -> [envoy sidecar -> 消费者服务]
\n所以是的,流量必须通过入口网关路由
\n\n\n假设应用程序 A 是应用程序 B 的外部服务。应用程序 A 向 B 发出休息请求。该请求是否应该通过入口路由?现在应用程序 B 向 A 发出休息请求。流量现在应该通过出口吗?
\n
如果服务网格内的服务想要与外部服务通信,我们应该从为其配置出口和服务入口开始。
\n\n\n由于默认情况下,来自支持 Istio 的 pod 的所有出站流量都会重定向到其 sidecar 代理,因此集群外部 URL 的可访问性取决于代理的配置。默认情况下,Istio 将 Envoy 代理配置为传递未知服务的请求。尽管这提供了一种开始使用 Istio 的便捷方法,但配置更严格的控制通常更可取。
\n
据我所知,流量就是这样的。
\nappA -> external service outside the mesh\nappB -> injected service in the istio mesh\n
Run Code Online (Sandbox Code Playgroud)\n假设您想使用从 appA 到 appB 的curl
\n[app A](curl ingress-external-ip/特定路径或端口) -> 入口网关 -> [envoy sidecar -> appB]
\n假设您想使用从 appB 到 appA 的curl
\n[appB -> envoy sidecar](curl appA) -> 出口网关 -> [appA]
\n如果您还有其他问题或想讨论某些问题,请在评论中告诉我。
\n 归档时间: |
|
查看次数: |
3610 次 |
最近记录: |