解決多叢集問題

本節說明 Cloud Service Mesh 的常見問題,以及如何解決這些問題。如需其他協助,請參閱「取得支援」。

缺少密鑰

本節僅適用於叢集內控制層,以及採用 Istiod 實作方式的受管理控制層。

Cloud Service Mesh 依賴內嵌在 Kubernetes Secret 中的 kubeconfig 檔案,才能正確探索遠端端點。如果沒有這些密碼,使用者在跨叢集負載平衡期間,一律會看到要求命中本機叢集中的 Pod。

在每個叢集中執行下列指令,確認密鑰已建立:

kubectl get secret istio-remote-secret-CLUSTER_NAME_i -n istio-system

確認預期輸出內容:

NAME                                   TYPE     DATA   AGE
istio-remote-secret-CLUSTER_NAME_i   Opaque   1      44s

如要從這個狀態復原,請刪除所有遠端密鑰,然後重新執行 create-mesh 指令。

無法連上 API 伺服器

本節僅適用於叢集內控制層和受管理 (istiod 實作)。

Cloud Service Mesh 的控制層必須連上遠端叢集的 API 伺服器。下列情況可能導致遠端叢集無法連線:

如果 API 伺服器無法連線,Istiod 會在記錄中輸出錯誤訊息。在跨叢集負載平衡期間,使用者一律會看到要求命中本機 Pod。

在 Logs Explorer 介面中,將查詢 resource.type 設為 istio_control_plane。

檢查是否有任何無效的密鑰錯誤。

如要解決這個問題,請修正基礎 API 伺服器的可連線問題。接著,刪除每個叢集中的所有遠端密鑰,然後重新執行 create-mesh 指令。

缺少防火牆規則

如果沒有適當的防火牆規則,使用者在執行跨叢集負載平衡時,會先遇到 10 秒的延遲,然後發生逾時。

如要從這個狀態復原,請按照「建立防火牆規則」一節的步驟操作。