Fusion Microservices
Fusion is comprised of microservices that drive features and functionality within a deployment. The services running in your deployment depend on the version of Fusion and the features you have enabled.
Get deployment details
You can view your deployment details using kubectl.
-
First, verify that you have access to your cluster, replacing the example values with your parameters. This example is for a Fusion instance deployed using GKE.
gcloud container clusters get-credentials EXAMPLE-CLUSTER --region EXAMPLE-REGION --project EXAMPLE-PROJECT
-
Get the ports and services:
kubectl get svc -n EXAMPLE-NAME
-
Get the StatefulSets:
kubectl get statefulsets -n EXAMPLE-NAME
-
Get the deployments:
kubectl get deploy -n EXAMPLE-NAME
Overview
The table below lists the Fusion microservices deployed by the Helm chart. It also include Kubernetes services that manage traffic to microservices.
Fusion is a complex distributed application composed of many stateful and stateless services designed to support demanding search-oriented workloads at high scale. |
For Docker image versions associated with microservices, see the list of Docker images and versions for each Fusion release.
Microservice | Required for Fusion | Protocol | Deployment or StatefulSet | Node Pool Assignment | Autoscaling Supported | Description |
---|---|---|---|---|---|---|
|
Yes |
REST/HTTP |
Deployment |
system |
Not required. Minimum of 1, but 2 pods are recommended for high availability. |
Exposes endpoints for admin tasks, such as creating applications and running jobs. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Serves static Web assets for the admin UI. |
|
No |
HTTP |
Deployment |
system |
Yes (CPU or custom metric). |
Orchestrates parallel jobs on Kubernetes. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Stores logs and prior Argo workflow runs. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Serves static Web assets for the login form. |
|
No |
REST/HTTP |
StatefulSet |
analytics or system |
Not supported. |
REST service for supporting non-RPC connector plugins. This microservice was previously named classic-rest-service. |
|
No |
REST/HTTP |
Deployment |
analytics or system |
Not required. One pod is enough for most clusters. |
Routes REST API requests to connectors-classic and connectors-rpc. |
|
No |
gRPC |
Deployment |
analytics or system |
Yes (CPU or custom metric). |
gRPC service for managing SDK-based connector plugins. |
|
No |
HTTP/TCP |
Deployment |
analytics or system |
Yes (CPU or custom metric). |
Deployment for each connector plugin type. Note: There is a base deployment, connector-plugin with 0 replicas. This is used as a deployment template for each connector plugin type. It should not be deleted or scaled. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Serves static Web assets for the DevOps UI. Available in Fusion 5.0 through 5.5. |
|
Yes |
REST/HTTP |
Deployment |
search or analytics depending on write-volume |
Yes (CPU or custom metric). |
Processes indexing requests. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Serves the App Insights UI |
|
No |
REST/HTTP |
Deployment |
analytics |
Not required. One pod is enough for most clusters. |
Configures and launches the Spark driver pod for running Spark jobs |
|
No |
REST/HTTP |
Deployment |
analytics |
Not required. One pod is enough for most clusters. |
Performs admin tasks for creating and running Spark jobs. |
|
No |
HTTP |
Deployment |
analytics |
Not required. One pod is enough for most clusters. |
Jupyter notebook for ad hoc analytics and visualization. |
|
No |
HTTP |
StatefulSet |
system |
Not required. Minimum of 1, but 2 pods are recommended for high availability. |
Collects logs from the other microservices and either indexes into system_logs or ships them to an external service like Elastic |
|
No |
REST/HTTP |
Deployment |
analytics or system |
Not required. One pod is enough for most clusters. |
Dense Vector Search Engine for ML models active. |
|
No |
REST/HTTP |
Deployment |
analytics or system |
Not required. One pod is enough for most clusters. |
Handles metadata for Milvus service active. |
|
No |
REST/HTTP and gRPC |
Deployment |
search |
Yes (CPU or custom metric). |
Exposes gRPC endpoints for generating predictions from ML models. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Serves static Web assets for the Predictive Merchandiser app. |
|
Yes |
HTTP |
Deployment |
search |
Not required. Minimum of 1, but 2 pods are recommended for high availability. |
Performs authentication, authorization, and traffic routing. |
|
Yes |
HTTP |
StatefulSet |
search |
At least 3 nodes in high availability. You need to run 3 or 5 to keep quorum. |
Write Ahead Log (WAL) used for persistent message storage. |
|
Yes |
HTTP and TCP |
Deployment |
search |
At least 3 nodes in high availability. |
Contains REST API for managing administration and dispatcher for handling all message transfers. |
|
Yes |
REST/HTTP |
Deployment |
search |
Yes (CPU or custom metric). |
Processes query requests. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Serves static Web assets for the Rules UI. |
|
No |
Web |
Deployment |
system |
Not required. Minimum of 1, but 2 pods are recommended for high availability. |
Load balancing and proxy for Seldon Core deployments. |
|
No |
REST/GRPC |
Deployment |
system |
Yes (CPU or custom metric). |
Serves models built in any model building framework. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Maintains Seldon Core deployments for ML model serving active. |
|
Yes |
HTTP |
StatefulSet |
At least 3 nodes in search, 2 in analytics, and 2 in system |
Yes (CPU or custom metric). |
Search engine. |
|
No |
n/a |
single pod per job |
analytics or dedicated Node Pool for Spark jobs |
One per job. |
Launched by the job-launcher to run a Spark job |
|
No |
n/a |
one or more pods launched by the Spark driver for executing job tasks |
analytics or dedicated Node Pool for Spark jobs |
Depends on job configuration. Controlled by the spark.executor.instances setting. |
Executes tasks for a Spark job |
|
No |
REST/HTTP and JDBC |
Deployment |
analytics |
Not required. One pod is enough for most clusters. |
Performs admin tasks for creating and managing SQL catalog assets. Exposes a JDBC endpoint for the SQL service. |
|
No |
Web |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Retrieves and renders Predictive Merchandiser templates. |
|
No |
HTTP |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Is responsible for text extraction using Tika Server Parser |
|
No |
REST/HTTP |
Deployment |
system |
Not required. One pod is enough for most clusters. |
Serves App Studio-based Web apps. |
|
Yes |
TCP |
StatefulSet |
system |
No. You need to run 1, 3, or 5 ZooKeeper pods to keep quorum. Do not use HPA for scaling ZooKeeper. |
Stores centralized configuration and performs distributed coordination tasks. |
Ports used by Fusion
Below you will find the list of pod ports for intra-cluster communications.
Service | Port |
---|---|
|
8765 |
|
8080 |
|
8080 |
|
9020, 5701 |
|
9010 |
|
8771 |
|
9000 |
|
8080 |
|
2746 |
|
8888 |
|
9092, 9093 |
|
9092, 9093 |
|
80, 443 |
|
3306 |
|
3181, 8000 |
|
8080, 6650 |
|
8989 |
|
8983 |
|
8983 |
|
2181, 2281 |
|
2181, 3888, 2888, 2281 |
|
8765 |
|
8080 |
|
8083 |
|
8081 |
|
19530, 19121 |
|
6565 |
|
8086 |
|
8080 |
|
8080 |
|
9091 |
|
6764 |
|
8080, 6650 |
|
8787 |
|
8080 |
|
443 |
|
8088 |
|
8085 |
|
8088 |
|
80 |
|
5250 |
|
9998 |
|
8780 |