特使在 0.0.0.0:9080 和 <clusterIP>:9080 上都有监听器
Envoy has listener on both 0.0.0.0:9080 and <clusterIP>:9080
我正在玩 Istio 指南中的 Bookinfo 示例。部署成功。我可以看到产品页面。
当我查看 'productpage' pod 的详细 Envoy 设置时,我感到很困惑。来自 istio-pilot for LDS 的 return 显示它有两个侦听器(除其他外),一个正在监视 0.0.0.0:9080
,另一个正在监视 172.17.0.9:9080
(这是 productpage pod 的 clusterIP)。
172.17.0.9
上的侦听器处理入口流量并将所有内容路由到本地主机,这是有道理的。
0.0.0.0:9080
上的侦听器似乎处理对应用程序其他服务的所有出口请求,例如详细信息、评论。但如果它的域是 'productpage.default.svc.cluster.local',它也会处理请求,并将其路由到 pod 本身。那么当请求发送到产品页面 svc 时,这会创建一个循环吗?
我确定循环没有发生。但只是想知道是什么阻止了它?或者我阅读 Envoy 配置的方式是错误的。
此外,我认为一旦已经在同一端口上为 0.0.0.0
创建了侦听器,就不允许侦听特定接口?
只有一个侦听器会实际绑定到 OS 套接字。另一个将 bind_to_port
设置为 false
https://www.envoyproxy.io/envoy/configuration/listeners/listeners
Envoy 可以在内部重定向到此类未绑定的侦听器。
我正在玩 Istio 指南中的 Bookinfo 示例。部署成功。我可以看到产品页面。
当我查看 'productpage' pod 的详细 Envoy 设置时,我感到很困惑。来自 istio-pilot for LDS 的 return 显示它有两个侦听器(除其他外),一个正在监视 0.0.0.0:9080
,另一个正在监视 172.17.0.9:9080
(这是 productpage pod 的 clusterIP)。
172.17.0.9
上的侦听器处理入口流量并将所有内容路由到本地主机,这是有道理的。0.0.0.0:9080
上的侦听器似乎处理对应用程序其他服务的所有出口请求,例如详细信息、评论。但如果它的域是 'productpage.default.svc.cluster.local',它也会处理请求,并将其路由到 pod 本身。那么当请求发送到产品页面 svc 时,这会创建一个循环吗?
我确定循环没有发生。但只是想知道是什么阻止了它?或者我阅读 Envoy 配置的方式是错误的。
此外,我认为一旦已经在同一端口上为 0.0.0.0
创建了侦听器,就不允许侦听特定接口?
只有一个侦听器会实际绑定到 OS 套接字。另一个将 bind_to_port
设置为 false
https://www.envoyproxy.io/envoy/configuration/listeners/listeners
Envoy 可以在内部重定向到此类未绑定的侦听器。