Distributed microservices work together to make up an application. Service Mesh provides a uniform method to connect, manage, and observe microservices-based applications.
The OpenShift implementation of Service Mesh is based on Istio, an open-source project. Users define the granularity of the Service Mesh deployment, enabling them to meet their specific deployment and application needs. Service Mesh can be deployed at the cluster level or the project level.
For more information, see the OpenShift Service Mesh documentation.
Red Hat Service Mesh provides the following four operators:
- OpenShift Elasticsearch (Optional): The Elasticsearch operator enables you to configure and manage an Elasticsearch cluster for tracing and logging with Jaeger.
- Red Hat OpenShift distributed tracing platform (Jaeger): Provides tracing to monitor and troubleshoot transactions in complex distributed systems.
- Kiali: Provides observability for your service mesh. Kiali enables you to view configurations, monitor traffic, and view and analyze traces in a single console.
- Red Hat OpenShift Service Mesh: Enables you to connect, secure, control, and observe the microservices that make up your applications. The Service Mesh operator defines and monitors the ServiceMeshControlPlane resources that manage the deployment, updating, and deletion of the Service Mesh components.
Installing Service Mesh operators
Install Elasticsearch
To install the Elasticsearch operator:
- Log in to the OpenShift Container Platform web console and select Operators > OperatorHub.
- Search for OpenShift Elasticsearch Operator.
Figure 45. OpenShift Elasticsearch operator
- Click Install.
- Select All namespaces on the cluster (default) for the installation mode and automatic approval strategy.
- Click Install to initialize the installation.
Install the OpenShift distributed tracing platform (Jaeger) operator
To install the Jaeger operator:
- Log in to the OpenShift Container Platform web console and select Operators > OperatorHub.
Search for the Red Hat OpenShift distributed tracing platform operator, as shown in the following figure:
Figure 46. OpenShift distributed tracing platform operator
- Click Install.
- Select All namespaces on the cluster (default) for the installation mode and automatic approval strategy.
- Click Install to initialize the installation.
Instal Kiali
To install the Kiali operator:
- Log in to the OpenShift web console and select Operators > OperatorHub.
- Search for Kiali Operator, as shown in the following figure:
Figure 47. Kiali operator
- Click Install.
- Select All namespaces on the cluster (default) for the installation mode and automatic approval strategy.
Install the OpenShift Service Mesh operator
To install the Red Hat Service Mesh operator:
- Log in to the OpenShift Container Platform web console and select Operators > OperatorHub.
- Search for Red Hat OpenShift Service Mesh Operator, as shown in the following figure:
Figure 48. Red Hat OpenShift Service Mesh operator search
- Click Install.
- Select All namespaces on the cluster (default) for the installation mode and automatic approval strategy.
- On completion, install the Service Mesh control plane. This plane defines the configuration for control-plane installation.
Install the Service Mesh control plane
To install the Service Mesh control plane:
- Select Home > Projects > Create Project and create a project.
- Give the project the name “istio-system.”
- Select Operators > Installed Operators > Istio Service Mesh Control Plane.
- Click Create ServiceMeshControlPlane.
A default ServiceMeshControlPlane template is provided in YAML format.
- Modify the template to fit your use case and click Create.
The control plane starts installing, as shown in the following figure:
Figure 49. Service Mesh Control Plane installation
Configure the Service Mesh Member Roll
The projects that belong to the control plane are listed in ServiceMeshMemberRoll. Create a ServiceMeshMemberRoll resource named “default” in the istio-system project:
- Select Home > Projects > istio-system.
- Select Operators > Installed Operators > Red Hat OpenShift Service Mesh > Istio Service Mesh Member Roll.
- Under ServiceMeshMemberRolls, click Create ServiceMeshMemberRoll.
- Add the projects that you want to be part of Istio service mesh and click Create.
You can update the ServiceMeshMemberRoll resource that you created from the CLI.
ServiceMeshMemberRoll example
The following code snippet shows a YAML definition of a ServiceMeshMemberRoll:
apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
namespace: istio-system
name: default
spec:
members:
- bookinfo