簡體   English   中英

為什么我的服務間流量顯示在 Kiali 的 Passthrough 集群中

[英]Why is my inter-service traffic showing in the Passthrough Cluster in Kiali

我有兩個 Istio 集群,它們使用運行 Kiali 的復制控制平面。 在每個集群中,我有兩個交互的應用程序,但我在 Kiali 儀表板中看不到它們之間的流量。 相反,流量顯示為通過直通集群。

應用程序使用 kubernetes 服務名稱進行交互,它們交互正確,只是在 Kiali 中顯示不正確。

關於可能是什么問題的任何想法? 或者這是一種預期的行為(我還是 Istio 的新手)。

據我所知,這是您使用 Passthrough 選項時的預期行為。 檢查下面的 istiobyexample 鏈接,它准確地顯示了它是如何工作的。


啟用ALLOW_ANY 后,Istio 使用名為 PassthroughCluster 的 Envoy 集群,由 sidecar 代理強制執行,以監控出口流量。


看看關於那個的 kiali文檔

為什么我會看到 PassthroughCluster 的流量?

進入 PassthroughCluster(或 BlackHoleCluster)的請求是未路由到定義的服務或服務條目的請求,而是最終到達這些內置 Istio 請求處理程序之一。 有關詳細信息,請參閱監控被阻止和直通的外部服務流量。

到這些節點的意外路由並不表示 Kiali 問題,您看到的是 Istio 正在執行的實際路由。 一般來說,這是由於配置錯誤和/或缺少 Istio sidecar。 較少但可能是網格的實際問題,例如同步問題或被驅逐的 pod。

使用 Kiali 的工作負載列表視圖來確保邊車不丟失。 使用 Kiali 的 Istio Config 列表視圖來查找任何配置驗證錯誤。


還有一個關於istiobyexample.dev例子

選項 1 - 直通

首先,讓我們使用帶有默認 ALLOW_ANY 選項的 Istio 安裝。 這意味着無需額外配置就允許 idgen 對 httpbin 的請求。 啟用 ALLOW_ANY 后,Istio 使用一個名為 PassthroughCluster 的 Envoy 集群,由 idgen 的 sidecar 代理強制執行,以監控出口流量。

Envoy 集群是一組后端(或“上游”)端點,代表一個外部服務。 Istio sidecar Envoy 代理將過濾器應用於來自應用程序容器的攔截請求。 基於這些過濾器,Envoy 將流量發送到特定路由。 路由指定要向其發送流量的集群。

Istio Passthrough 集群設置為后端是原始請求目的地 因此,當為出口流量啟用 ALLOW_ANY 時,Envoy 將簡單地將 idgen 的請求“傳遞”到 httpbin。

有了這個配置,如果我們通過 IngressGateway 發送recipe ID 請求,idgen 就可以成功調用httpbin。 此流量在 Kiali 服務圖中顯示為 PassthroughCluster 流量 - 我們需要添加一個 ServiceEntry 以便 httpbin 獲得自己的服務級別遙測。 (我們稍后會這樣做。)

在此處輸入圖像描述

但是,如果我們在 Prometheus 中深入研究並找到 istio_total_requests 指標,我們可以看到 PassthroughCluster 流量將流向名為 httpbin.org 的目標服務。

在此處輸入圖像描述


希望您覺得這個有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM