解決多叢集問題
本節說明常見的 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 秒的延遲,接著就會超時。
如要復原,請按照「建立防火牆規則」一文中的步驟操作。