kiali: Kiali does not work well with Google Anthos Service Mesh
Hello team,
We are on Google’s GKE Kubernetes cluster. And we are also using Google’s Istio offering called Anthos Service Mesh. This is a managed offering of istio where the control plane is managed by Google.
We deployed Kiali through the Kiali operator and CRD and we have seen that when it’s just a handful of workloads, it can show us the required information about graphs and other visualization.
However, when we added all our workloads into the mesh, Kali became unusable and we were not able to see any traffic visualization
We tried bumping the resources but that did not help either.
All we see in the kiali pods are the following warning
kiali-7c79cb774b-hc8jr kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: platform-metrics] [pod: vmstorage-jldp-14]: unable to find any healthy Pilot instance "}
kiali-7c79cb774b-4rn9h kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: mobile-apps] [pod: stubs-things-we-love-64b7d98866-945tl]: unable to find any healthy Pilot instance "}
kiali-7c79cb774b-hc8jr kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: enablement] [pod: stubs-greetings-ui-7f4fffd7f-rfvhl]: unable to find any healthy Pilot instance "}
kiali-7c79cb774b-4rn9h kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: platform-metrics] [pod: vmselect-jldp-7]: unable to find any healthy Pilot instance "}
kiali-7c79cb774b-4rn9h kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: mobile-apps] [pod: stubs-things-we-love-64b7d98866-vw82w]: unable to find any healthy Pilot instance "}
kiali-7c79cb774b-hc8jr kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: catalogue-feeds] [pod: stubs-interface-01p-collator-5969f45c7-4rw69]: unable to find any healthy Pilot instance "}
kiali-7c79cb774b-hc8jr kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: mobile-apps] [pod: stubs-skus-7dfc5b4b89-28xzz]: unable to find any healthy Pilot instance "}
kiali-7c79cb774b-prdrj kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: catalogue] [pod: stubs-ratings-collator-6f65fffd7b-nfbd4]: unable to find any healthy Pilot instance "}
kiali-7c79cb774b-4rn9h kiali {"level":"warn","time":"2022-08-23T12:09:16Z","message":"GetPodProxyStatus is failing for [namespace: platform] [pod: microservice-manager-webhooks-697c497fb-qzwvh]: unable to find any healthy Pilot instance "}
We are not sure if this is the problem with Kiali being unable to visualize with a lot of workloads in the mesh or is it just the sheer size of our cluster?
Any help would be appreciated
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Reactions: 2
- Comments: 29 (11 by maintainers)
https://github.com/istio/istio/commit/0f870bce1823c13ca57fbb45aa68fe94eea60fe9 was the istioctl PR to add it
@qfel may be able to comment more
@jshaughn I think we should move forward with supporting connecting to istiod through a remote url as a config option in addition to the port forwarding solution we currently support if you’ll move this back to backlog.
A note, although our compatibility matrix (on kiali.io) doesn’t show tested support, I’m fairly sure v1.48 is compatible with Istio 1.12, as that is the combination shipped with Red Hat’s OSSM product.
For the record, here’s where the error message comes from - you can see where its trying to find an istiod to talk to: https://github.com/kiali/kiali/blob/master/kubernetes/istio.go#L69
Here is the 1.42.0 codebase: https://github.com/kiali/kiali/blob/v1.42.0/kubernetes/istio.go#L65
It is looking for an istiod pod found in the istio namespace (i.e. the one that you tell Kiali about - its the
istio_namespacesetting in the Kiali ConfigMap, which can be defined in the Kiali CR inspec.istio_namespace). It looks for a pod with theapplabel set toistiod. If there are no istiod pods that are in the running state, you will get this error.Now, you said, “Since we are using Google’s Anthos Service Mesh, istiod is managed by them. istio-system namespace does not have any pods.” – if so, that’s going to break Kiali. There needs to be an istiod pod so Kiali can talk to it. So I suspect Anthos is configuring things in a weird way that Kiali doesn’t understand. But I have a feeling all you need to do is tell Kiali where your Istio control plane is (set the
spec.istio_namespaceto where all the control plane pods (including istiod) are) and it “should” work.