Skip to content
You are viewing the documentation for Solo Enterprise for Istio, formerly known as Gloo Mesh (OSS APIs).

Architecture

Page as Markdown

Review how the Solo UI components extend observability for your Istio environment, and review requirements and other recommendations for your Solo Enterprise for Istio setup.

The Solo UI is an alpha feature in version 1.30. Alpha features are likely to change, are not fully tested, and are not supported for production. For more information, see Solo feature maturity.

About

The Solo UI deploys alongside your Istio ambient mesh environment in single or multicluster environments, and can discover existing ambient mesh installations across clusters and infrastructure providers. The UI works with ambient service meshes, whether you use community Istio images or Solo distributions of Istio.

The Solo UI includes components that Solo develops alongside several integrated open source projects that extend its capabilities, such as the OpenTelemetry pipeline and ClickHouse. Although Solo does not develop these projects, they are supported as part of regular usage with Solo Enterprise for Istio.

Key features that you have access to when using the Solo UI include:

  • Visual service graph: Review what services can communicate with other services, the policies that are applied before traffic is sent to a service, and how traffic between services is secured.
  • Live metrics: With the built-in ClickHouse integration, the Solo UI has access to workload-specific metrics, such as the number of requests that were received for a workload. This data is visualized in the Solo UI graph. For more information about the ClickHouse integration, see ClickHouse.
  • Global services: In multicluster setups, you can review all services that are exposed globally across the multicluster mesh, including their health statuses.
  • Resource overview: With the Solo UI, you can view all Istio and Kubernetes resources in one place for all the clusters that you registered with the management server.

Number of clusters

Single cluster

Solo Enterprise for Istio is fully functional when you run both the Solo UI components and an Istio service mesh within the same cluster. The Solo UI deploys alongside your workloads and provides observability into your mesh environment.

When a single-cluster guide in this documentation set requires your cluster name and context, you can save the name of your cluster in the ${cluster1} environment variable, and the context of your cluster in the ${context1} environment variable.

Multicluster

A multicluster Solo Enterprise for Istio setup consists of one cluster that you deploy the UI management components to, and one or more connected clusters in the multicluster mesh that you deploy the UI relay components to. The cluster that you install the management components in often also runs service mesh workloads, and does not need to serve as a dedicated management cluster.

Note that before you install the Solo UI into a multicluster environment, you must first install a multicluster ambient mesh. The multicluster ambient mesh provides the capability to expose the UI services in the management cluster globally, so that relay components in other clusters in the multicluster mesh can access the telemetry gateway and tunnel server addresses.

When a multicluster guide requires example names, the examples use cluster1 and cluster2. Otherwise, you can save the names of your clusters in the ${cluster1} and ${cluster2} environment variables, and the contexts of your clusters in the ${context1} and ${context2} environment variables.

Dedicated management cluster (no Istio required)

You can optionally deploy the Solo UI management components on a dedicated cluster where Istio is not installed. This topology separates observability infrastructure from your workload clusters.

In this topology, the management cluster hosts the UI server, OTel gateway, and ClickHouse. Each workload cluster runs the relay chart, which connects to the management cluster over load balancer addresses that are accessible from the workload clusters, rather than over an ambient mesh global service. To install in this topology, set istio.ambient.enabled=false in the management chart, expose the tunnel server and OTel gateway as load balancer services, and set tunnel.fqdn and telemetry.fqdn in the relay chart to those external addresses. For more information, see the installation guide.

Components

The Solo UI management chart deploys the following pods.

PodContainersDescription
solo-enterprise-uiui-backend, ui-frontend, tunnel-server, k8sobjects-collector, idpThe main UI pod. Contains the backend API server, frontend React app, tunnel server for multicluster connectivity, a dedicated OTel collector for Kubernetes object snapshots, and a built-in identity provider for auto-authentication.
solo-enterprise-telemetry-collectortelemetry-collectorRuns the OTel collector that scrapes Istio metrics, collects traces and events, and (in multicluster setups) receives telemetry from workload clusters. Writes all data to ClickHouse.
solo-management-clickhouse-shard0clickhouseRuns the ClickHouse database that stores all telemetry data. The Solo UI reads directly from ClickHouse to power the service graph, metrics views, and resource overviews.

The solo-enterprise-ui pod runs the following five containers.

ContainerImagePort(s)Description
ui-backendsolo-enterprise-ui-backend8090, 8091, 9090The backend API server and single entry point to the Solo UI.
  • 8090: HTTP/gRPC-Web; routes /api/* requests to the backend APIs and all other paths to the frontend via reverse proxy. Reads metrics from ClickHouse and proxies Kubernetes API and resource management requests to workload clusters through the tunnel server.
  • 8091: Raw gRPC endpoint.
  • 9090: Prometheus metrics.
ui-frontendsolo-enterprise-ui-frontend4000Serves the React application and static assets to the browser.
tunnel-serversolo-enterprise-tunnel-server9000, 9990, 9991, 8080Manages cross-cluster connectivity.
  • 9000: Accepts tunnel client connections from workload clusters
  • 9990: Proxies Kubernetes API requests to remote clusters
  • 9991: Proxies resource management traffic to remote clusters
  • 8080: Exposes tunnel metrics
k8sobjects-collectoropentelemetry-collector-contrib13133, 8888A dedicated OTel collector that watches Kubernetes object changes and streams them to ClickHouse, powering the resource overview in the Solo UI. Uses a separate configmap (solo-enterprise-k8sobjects-config) from the main telemetry collector.
idpsolo-enterprise-autoauth5556A built-in OIDC identity provider used for auto-authentication when no external OIDC provider is configured.

The Solo UI relay chart deploys the following pods in each workload cluster.

PodContainersDescription
solo-enterprise-relayk8sobjects-collector, tunnel-clientThe relay pod. Contains a dedicated OTel collector for Kubernetes object snapshots in the workload cluster, and a tunnel client that connects to the tunnel server in the management cluster.
solo-enterprise-telemetry-collectortelemetry-collectorRuns the OTel collector that scrapes Istio metrics, collects traces and events, and forwards all telemetry data to the management cluster via the telemetry gateway.

Network architecture

Review the deployed components and their ports in single or multicluster setups.

Single cluster

Review how the Solo UI components communicate with each other in one cluster in the following diagram.

Figure: Single-cluster network architecture for the Solo UI
Figure: Single-cluster network architecture for the Solo UI

Review the following table to understand the ports and protocols that the Solo UI uses for communication among components in a single-cluster setup. All components are deployed by the solo-enterprise/management Helm chart.

Port / ProtocolSourceDestinationNetworkDescription
180 HTTPBrowser clientui-backend (solo-enterprise-ui pod)PublicUI backend
A browser client retrieves the JavaScript bundle from the UI backend. Port 80 of the UI backend is the single point of entry to the Solo UI. The UI backend uses path-based routing, in which incoming requests to the /api/* path route to the backend APIs, such as requests to retrieve metrics data, and requests to any other paths (/*) route to the UI frontend.
2/* proxyui-backend (solo-enterprise-ui pod)ui-frontend (solo-enterprise-ui pod)Cluster networkFrontend application serving
The UI backend acts as a reverse proxy, forwarding all browser requests on paths other than /api to the UI frontend service. The UI frontend serves the React app and static assets (like HTML, JavaScript, and CSS files) to the browser.
39000 TCPui-backend (solo-enterprise-ui pod)ClickHouse (solo-management-clickhouse-shard0 pod)Cluster networkRead from ClickHouse
The UI backend reads telemetry data from the ClickHouse instance.
44317 gRPCIstio mesh workloadstelemetry-collector (solo-enterprise-telemetry-collector pod)Cluster networkTelemetry collection
Istio mesh workloads push metrics and trace data to the OTel collector via OTLP.
59000 TCPtelemetry-collector (solo-enterprise-telemetry-collector pod)ClickHouse (solo-management-clickhouse-shard0 pod)Cluster networkWrite telemetry
The OTel collector writes collected telemetry data to the ClickHouse instance.
69000 TCPk8sobjects-collector (solo-enterprise-ui pod)ClickHouse (solo-management-clickhouse-shard0 pod)Cluster networkWrite Kubernetes object snapshots
The k8sobjects-collector writes Kubernetes object change events directly to ClickHouse using the native TCP protocol, powering the resource overview in the Solo UI.

Multicluster

Review how the Solo UI components communicate with each other in the following diagram. This diagram represents the network architecture in a multicluster setup that consists of one cluster where the Solo UI is deployed, and one connected cluster. Both clusters are connected by a multicluster ambient mesh, and service mesh workloads can run in both clusters.

Figure: Multicluster network architecture for the Solo UI
Figure: Multicluster network architecture for the Solo UI

Review the following tables to understand the ports and protocols that the Solo UI uses for communication among components.

Management component ports

The following components are deployed by the solo-enterprise/management Helm chart in a cluster that serves as the management plane. In the ambient mesh topology shown in this diagram, this cluster is included in the multicluster ambient mesh and often also runs workloads in the mesh. If you instead use a dedicated management cluster, the cluster does not need to be part of an ambient mesh, and relay components connect to it over load balancer addresses that are accessible from the workload clusters.

Port / ProtocolSourceDestinationNetworkDescription
180 HTTPBrowser clientui-backend (solo-enterprise-ui pod)PublicUI backend
A browser client retrieves the JavaScript bundle from the UI backend. Port 80 of the UI backend is the single point of entry to the Solo UI. The UI backend uses path-based routing, in which incoming requests to the /api/* path route to the backend APIs, such as requests to retrieve metrics data, and requests to any other paths (/*) route to the UI frontend.
2/* proxyui-backend (solo-enterprise-ui pod)ui-frontend (solo-enterprise-ui pod)Cluster networkFrontend application serving
The UI backend acts as a reverse proxy, forwarding all browser requests on paths other than /api to the UI frontend service. The UI frontend serves the React app and static assets (like HTML, JavaScript, and CSS files) to the browser.
39000 TCPui-backend (solo-enterprise-ui pod)ClickHouse (solo-management-clickhouse-shard0 pod)Cluster networkRead from ClickHouse
The UI backend reads telemetry data from the ClickHouse instance.
44317 gRPCIstio mesh workloads (management cluster)telemetry-collector (solo-enterprise-telemetry-collector pod)Cluster networkTelemetry collection
Istio mesh workloads in the management cluster push metrics and trace data to the OTel collector via OTLP.
59000 TCPtelemetry-collector (solo-enterprise-telemetry-collector pod)ClickHouse (solo-management-clickhouse-shard0 pod)Cluster networkWrite telemetry
The OTel collector writes collected telemetry data to the ClickHouse instance.
69000 TCPk8sobjects-collector (solo-enterprise-ui pod)ClickHouse (solo-management-clickhouse-shard0 pod)Cluster networkWrite Kubernetes object snapshots
The k8sobjects-collector writes Kubernetes object change events directly to ClickHouse using the native TCP protocol, powering the resource overview in the Solo UI.
78080 HTTPui-backend (solo-enterprise-ui pod)tunnel-server (solo-enterprise-ui pod)Cluster networkTunnel server metrics
The UI backend reads metrics from the tunnel server.
79991 HTTP/gRPCui-backend (solo-enterprise-ui pod)tunnel-server (solo-enterprise-ui pod)Cluster networkResource management
The UI backend routes HTTP traffic for lifecycle management of Istio and Kubernetes resources in workload clusters through the tunnel server.
79990 HTTPui-backend (solo-enterprise-ui pod)tunnel-server (solo-enterprise-ui pod)Cluster networkKubernetes API proxy
The UI backend routes Kubernetes API requests to workload clusters through the tunnel server, which securely proxies API requests to remote clusters.
89000 HTTP/
HTTP2 CONNECT
tunnel-client (solo-enterprise-relay pod)tunnel-server (solo-enterprise-ui pod)PublicCross-cluster tunnel
The tunnel client in the workload cluster connects to the tunnel server in the management cluster to facilitate bidirectional traffic.

Relay component ports

The following components are deployed by the solo-enterprise/relay Helm chart in a cluster that runs mesh workloads.

Port / ProtocolSourceDestinationNetworkDescription
9443 TCPtunnel-client (solo-enterprise-relay pod)kube-apiserverCluster networkKubernetes API
The tunnel client forwards Kubernetes API requests from the management cluster to the kube-apiserver in the workload cluster.
104317 gRPCIstio mesh workloadstelemetry-collector (solo-enterprise-telemetry-collector pod)Cluster networkTelemetry collection
Istio mesh workloads push metrics and trace data to the OTel collector via OTLP.
114316 gRPCtelemetry-collector (solo-enterprise-telemetry-collector pod)solo-enterprise-telemetry-gateway service (solo-enterprise-telemetry-collector pod, management cluster)PublicTelemetry export
The OTel collector pushes telemetry data to the telemetry gateway service in the management cluster, which routes to the management cluster’s OTel collector.
114316 gRPCk8sobjects-collector (solo-enterprise-relay pod)solo-enterprise-telemetry-gateway service (solo-enterprise-telemetry-collector pod, management cluster)PublicKubernetes object snapshots
The k8sobjects-collector in the relay pod sends Kubernetes object change events from the workload cluster via OTLP to the management cluster’s telemetry gateway, which routes them to the OTel collector and ultimately ClickHouse.

Version

The Solo UI is supported for Solo Enterprise for Istio versions 1.30 or later. Review the minimum Solo UI version that is tested and compatible with each Solo Enterprise for Istio version.

Additionally, note that the Solo UI is supported for ambient meshes, and requires an Enterprise-level license for Solo Enterprise for Istio. If you have a Basic or Premium license for Solo Enterprise for Istio, or use a sidecar mesh setup, use the Gloo UI. for observability and management of your Istio environment.

Solo Enterprise for IstioRelease dateKubernetesKubernetes Gateway APISolo UISolo Enterprise for agentgatewayGloo Operator
1.30.x28 May 20261.32 - 1.361.5.00.4.3+2026.5.00.5.2+
1.29.x24 Feb 20261.30 - 1.351.4.0N/AN/A0.5.0+
1.28.x13 Nov 20251.30 - 1.341.4.0N/AN/A0.4.1+
1.27.x19 Aug 20251.30 - 1.331.3.0N/AN/A0.3.0+
1.26.x30 May 20251.29 - 1.331.2.1N/AN/A0.2.5+