Troubleshooting
The following problems can occur while a Kiali server observes a multi-cluster mesh. The cluster names and environment variables are the ones used in Installing Kiali in a multi-cluster mesh.
TOC
The remote cluster is reported as accessible, but its namespaces are missing from the consoleGenerating the remote cluster secret never completesThe Kiali server pod stays inContainerCreating after a cluster was removedGraphs are empty although the clusters are accessibleThe remote cluster is reported as accessible, but its namespaces are missing from the console
The Kiali server log shows the following entries:
The remote cluster secret addresses the cluster API server directly, so the service account token of Kiali works but the platform token of the logged-in user is rejected. Change the server field of the kubeconfig in the secret to the platform endpoint, <platform-url>/kubernetes/<cluster-name>, together with the matching certificate authority, and trigger a reconciliation. See step 4 of the installation procedure.
Generating the remote cluster secret never completes
The script repeats the following message and then fails:
The long-lived service account token secret is missing on the remote cluster. Complete step 3 of the installation procedure, then run the script again.
The Kiali server pod stays in ContainerCreating after a cluster was removed
The pod events report a missing secret:
The deployment still mounts the remote cluster secret that was deleted, and reconciliation does not drop that volume. Recreate the deployment as described in step 4 of Removing a cluster from Kiali.
Graphs are empty although the clusters are accessible
Confirm that the metrics of all clusters carry the mesh_id label that spec.external_services.prometheus.query_scope filters on:
The result must contain one series per cluster pair that exchanges traffic. If a cluster is missing, its metrics either never reach the store or carry no matching mesh_id label: check that the cluster has the ServiceMonitor and PodMonitor objects, and that the control plane which configures it has the Telemetry resource whose mesh_id tag override matches the meshID of the Istio resource. See Configuring Monitoring with Service Mesh.