解決多叢集問題

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

缺少密鑰

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

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

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 伺服器

Cloud Service Mesh 的控制層需要連線至遠端叢集的 API 伺服器。下列情況可能會導致無法存取遠端叢集:

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

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

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

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

缺少防火牆規則

如果沒有適當的防火牆規則,使用者在進行跨叢集負載平衡時,會先經歷 10 秒的延遲,接著就會超時。

如要復原,請按照「建立防火牆規則」一文中的步驟操作。