解决多集群问题

本部分介绍常见的 Cloud Service Mesh 问题以及如何解决这些问题。如果您需要其他帮助,请参阅获取支持

缺少 Secret

本部分仅适用于集群内控制平面和代管式 具有 Istiod 实现的控制平面。

Cloud Service Mesh 依赖于嵌入在 Kubernetes Secret 中的 kubeconfig 文件进行适当的远程端点发现。如果没有这些 Secret, 在跨集群加载期间始终看到请求命中本地集群中的 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

如需进行恢复,请删除所有远程 Secret 并重新运行 create-mesh 命令。

无法访问 API 服务器

本部分仅适用于集群内控制平面和托管(istiod 实现)。

Cloud Service Mesh 的控制平面需要访问远程集群的 API 服务器。以下情况可能导致远程集群变得无法访问:

如果无法访问 API 服务器,Istiod 将在日志中输出错误消息。在跨集群负载均衡期间,用户始终会看到请求命中本地 pod。

日志浏览器界面中,将查询 resource.type 设置为 istio_control_plane

检查是否存在任何无效的密钥错误。

如需从此问题中恢复,请修复底层 API 服务器 可达性问题接下来,删除每个集群中的所有远程 Secret,然后重新运行 create-mesh 命令。

缺少防火墙规则

如果没有适当的防火墙规则,则在进行跨集群负载均衡时,用户将遇到 10 秒的延迟,接着超时。

如需恢复该规则,请按照创建防火墙规则中所述的步骤操作。