For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.
Architecture
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.
Warning
The Solo UI is an alpha feature in version 1.31. 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, third-party, open source projects that extend its capabilities.
Note
Solo.io provides Helm values to install third-party components as a convenience, including ClickHouse and OpenTelemetry collector. These components are not included in the Solo Support policy. For support, contact the respective vendor or open-source project community.
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
Management chart
Version 0.5.7 and later of the Solo UI management chart deploys the following pods.
| Pod | Containers | Description |
|---|---|---|
solo-enterprise-ui | ui-backend, ui-frontend, idp | The main UI pod. Contains the backend API server, the frontend React app, and a built-in identity provider for auto-authentication. |
solo-enterprise-tunnel | tunnel-server | Runs the tunnel server that carries live Kubernetes traffic to and from workload clusters. Deployed in multicluster mode. |
solo-enterprise-k8sobjects-collector | k8sobjects-collector | Runs a dedicated OTel collector that watches Kubernetes object changes and writes them to ClickHouse, which powers the resource overview. |
solo-enterprise-telemetry-collector | telemetry-collector | Runs 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-shard0 | clickhouse | Runs 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. |
Important
The tunnel server and the Kubernetes object collector each run in their own Deployment. In earlier versions both ran as containers inside the solo-enterprise-ui pod. Because each component now scales and restarts on its own, you can run more than one replica of the UI, the tunnel server, or the collector. For steps, see High availability.
The solo-enterprise-ui pod runs the following three containers.
| Container | Image | Port(s) | Description |
|---|---|---|---|
ui-backend | solo-enterprise-ui-backend | 8090, 8091, 9090 | The backend API server and single entry point to the Solo UI.
|
ui-frontend | solo-enterprise-ui-frontend | 4000 | Serves the React application and static assets to the browser. |
idp | solo-enterprise-autoauth | 5556 | A built-in OIDC identity provider used for auto-authentication when no external OIDC provider is configured. Deployed only when auto-authentication is enabled. |
The solo-enterprise-tunnel pod runs the following container.
| Container | Image | Port(s) | Description |
|---|---|---|---|
tunnel-server | solo-enterprise-tunnel-server | 9000, 9990, 9991, 8080 | Manages cross-cluster connectivity.
|
The solo-enterprise-k8sobjects-collector pod runs the following container.
| Container | Image | Port(s) | Description |
|---|---|---|---|
k8sobjects-collector | opentelemetry-collector-contrib | 13133, 8888 | A 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. |
Relay chart
Version 0.5.7 and later of the Solo UI relay chart deploys the following pods in each workload cluster.
| Pod | Containers | Description |
|---|---|---|
solo-enterprise-relay | k8sobjects-collector | Runs a dedicated OTel collector for Kubernetes object snapshots in the workload cluster. |
solo-enterprise-tunnel-client | tunnel-client | Connects to the tunnel server in the management cluster. In an active-passive setup, one Deployment is created for each management destination, and the destination name suffixes the pod name. |
solo-enterprise-telemetry-collector | telemetry-collector | Runs the OTel collector that scrapes Istio metrics, collects traces and events, and forwards all telemetry data to the management cluster via the telemetry gateway. |
The relay chart pods run the following containers.
| Container | Image | Port(s) | Description |
|---|---|---|---|
k8sobjects-collector | opentelemetry-collector-contrib | 13133, 8888 | A dedicated OTel collector that watches Kubernetes object changes in this workload cluster and forwards them to the management cluster.
|
tunnel-client | solo-enterprise-tunnel-client | 9000 | Opens and maintains the tunnel to the tunnel server in the management cluster, which the Solo UI uses to reach this cluster.
|
telemetry-collector | opentelemetry-collector-contrib | 4317, 13133, 8888 | Scrapes Istio metrics and collects traces and events in this workload cluster, then forwards them to the telemetry gateway in the management cluster.
|
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.
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 / Protocol | Source | Destination | Network | Description | |
|---|---|---|---|---|---|
| 1 | 80 HTTP | Browser client | ui-backend (solo-enterprise-ui pod) | Public | UI backendA 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 | /* proxy | ui-backend (solo-enterprise-ui pod) | ui-frontend (solo-enterprise-ui pod) | Cluster network | Frontend application servingThe 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. |
| 3 | 9000 TCP | ui-backend (solo-enterprise-ui pod) | ClickHouse (solo-management-clickhouse-shard0 pod) | Cluster network | Read from ClickHouseThe UI backend reads telemetry data from the ClickHouse instance. |
| 4 | 4317 gRPC | Istio mesh workloads | telemetry-collector (solo-enterprise-telemetry-collector pod) | Cluster network | Telemetry collectionIstio mesh workloads push metrics and trace data to the OTel collector via OTLP. |
| 5 | 9000 TCP | telemetry-collector (solo-enterprise-telemetry-collector pod) | ClickHouse (solo-management-clickhouse-shard0 pod) | Cluster network | Write telemetryThe OTel collector writes collected telemetry data to the ClickHouse instance. |
| 6 | 9000 TCP | k8sobjects-collector (solo-enterprise-k8sobjects-collector pod) | ClickHouse (solo-management-clickhouse-shard0 pod) | Cluster network | Write Kubernetes object snapshotsThe 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.
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 / Protocol | Source | Destination | Network | Description | |
|---|---|---|---|---|---|
| 1 | 80 HTTP | Browser client | ui-backend (solo-enterprise-ui pod) | Public | UI backendA 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 | /* proxy | ui-backend (solo-enterprise-ui pod) | ui-frontend (solo-enterprise-ui pod) | Cluster network | Frontend application servingThe 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. |
| 3 | 9000 TCP | ui-backend (solo-enterprise-ui pod) | ClickHouse (solo-management-clickhouse-shard0 pod) | Cluster network | Read from ClickHouseThe UI backend reads telemetry data from the ClickHouse instance. |
| 4 | 4317 gRPC | Istio mesh workloads (management cluster) | telemetry-collector (solo-enterprise-telemetry-collector pod) | Cluster network | Telemetry collectionIstio mesh workloads in the management cluster push metrics and trace data to the OTel collector via OTLP. |
| 5 | 9000 TCP | telemetry-collector (solo-enterprise-telemetry-collector pod) | ClickHouse (solo-management-clickhouse-shard0 pod) | Cluster network | Write telemetryThe OTel collector writes collected telemetry data to the ClickHouse instance. |
| 6 | 9000 TCP | k8sobjects-collector (solo-enterprise-k8sobjects-collector pod) | ClickHouse (solo-management-clickhouse-shard0 pod) | Cluster network | Write Kubernetes object snapshotsThe k8sobjects-collector writes Kubernetes object change events directly to ClickHouse using the native TCP protocol, powering the resource overview in the Solo UI. |
| 7 | 8080 HTTP | ui-backend (solo-enterprise-ui pod) | tunnel-server (solo-enterprise-tunnel pod) | Cluster network | Tunnel server metricsThe UI backend reads metrics from the tunnel server. |
| 7 | 9991 HTTP/gRPC | ui-backend (solo-enterprise-ui pod) | tunnel-server (solo-enterprise-tunnel pod) | Cluster network | Resource managementThe UI backend routes HTTP traffic for lifecycle management of Istio and Kubernetes resources in workload clusters through the tunnel server. |
| 7 | 9990 HTTP | ui-backend (solo-enterprise-ui pod) | tunnel-server (solo-enterprise-tunnel pod) | Cluster network | Kubernetes API proxyThe UI backend routes Kubernetes API requests to workload clusters through the tunnel server, which securely proxies API requests to remote clusters. The internal ports require the shared token in the solo-enterprise-tunnel-auth Secret. |
| 8 | 9000 HTTP/HTTP2 CONNECT | tunnel-client (solo-enterprise-tunnel-client pod) | tunnel-server (solo-enterprise-tunnel pod, through the solo-enterprise-tunnel service) | Public | Cross-cluster tunnelThe 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 / Protocol | Source | Destination | Network | Description | |
|---|---|---|---|---|---|
| 9 | 443 TCP | tunnel-client (solo-enterprise-tunnel-client pod) | kube-apiserver | Cluster network | Kubernetes APIThe tunnel client forwards Kubernetes API requests from the management cluster to the kube-apiserver in the workload cluster. |
| 10 | 4317 gRPC | Istio mesh workloads | telemetry-collector (solo-enterprise-telemetry-collector pod) | Cluster network | Telemetry collectionIstio mesh workloads push metrics and trace data to the OTel collector via OTLP. |
| 11 | 4316 gRPC | telemetry-collector (solo-enterprise-telemetry-collector pod) | solo-enterprise-telemetry-gateway service (solo-enterprise-telemetry-collector pod, management cluster) | Public | Telemetry exportThe OTel collector pushes telemetry data to the telemetry gateway service in the management cluster, which routes to the management cluster’s OTel collector. |
| 11 | 4316 gRPC | k8sobjects-collector (solo-enterprise-relay pod) | solo-enterprise-telemetry-gateway service (solo-enterprise-telemetry-collector pod, management cluster) | Public | Kubernetes object snapshotsThe 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 Istio | Release date | Kubernetes | Kubernetes Gateway API | Solo UI | Solo Enterprise for agentgateway | Gloo Operator | OpenShift* |
|---|---|---|---|---|---|---|---|
| 1.31.x | 08 Sep 2026 | 1.32 - 1.36 | 1.5 - 1.6 | 0.5.7+ | 2026.8.2+ | 0.5.2+ | 4.18 - 4.22 |
| 1.30.x | 28 May 2026 | 1.32 - 1.36 | 1.5 - 1.6 | 0.4.3+ | 2026.5.0+ | 0.5.2+ | 4.18 - 4.22 |
| 1.29.x | 24 Feb 2026 | 1.30 - 1.35 | 1.4 - 1.5 | N/A | N/A | 0.5.0+ | 4.18 - 4.22 |
| 1.28.x | 13 Nov 2025 | 1.30 - 1.34 | 1.4 | N/A | N/A | 0.4.1+ | 4.18 - 4.22 |
| 1.27.x | 19 Aug 2025 | 1.30 - 1.33 | 1.3 - 1.4 | N/A | N/A | 0.3.0+ | 4.18 - 4.22 |
* OpenShift: Support depends on the underlying versions of Kubernetes and Gateway API that the OpenShift Container Platform version includes. For more information, see OpenShift.