- By: Thomas Jungbauer ( Lastmod: 2021-08-14 ) - 2 min read
Everything has a start, this blog as well as the following tutorials. This series of tutorials shall provide a brief and working overview about OpenShift Service Mesh. It is starting with the installation and the first steps, and will continue with advanced settings and configuration options.
OpenShift 4.x and ServiceMesh
|UPDATE: At 10th April 2020 Red Hat released Service Mesh version 1.1 which supports:
Istio - 1.4.6
Kiali - 1.12.7
Jaeger - 1.17.1
The following tutorials for OpenShift Service Mesh are based on the official documentation: OpenShift 4.3 Service Mesh and on the Interactive Learning Portal. All operations have been successfully tested on OpenShift 4.3. Currently OpenShift supports Istio 1.4.6, which shall be updated in one of the future releases.
To learn the basics of Service Mesh, please consult the documentation as they are not repeated here.
It is assumed that OpenShift has access to external registries, like quay.io.
Other resource I can recommend are:
At the very beginning OpenShift must be installed. This tutorial is based on OpenShift 4.3 and a Lab installation on Hetzner was used. Moreover, it is assumed that the OpenShift Client and Git are installed on the local system.
During the tutorials an example application in the namespace tutorial will be deployed. This application will contain 3 microservices:
customer (the entry point)
This application is also used at the Interactive Learning Portal which can be tested there interactively. However, the training is still based on OpenShift version 3.
Install Red Hat Service Mesh
To deploy Service Mesh on Openshift 4 follow the guide at Installing Red Hat OpenShift Service Mesh.
In short, multiple operators must be installed:
|Elasticsearch is a very memory intensive application. Per default it will request 16GB of memory which can be reduced on Lab environments.
Link Jaeger and Grafana to Kiali
In the lab environment it happened that Kiali was not able to auto detect Grafana or Jaeger. This is visible when the link Distributed Tracing is missing in the left menu.
To fix this the ServiceMeshControlPlane object in the istio-system namespace must be updated with 3 lines:
oc edit ServiceMeshControlPlane -n istio-system
kiali: # ADD THE FOLLOWING LINES
grafanaURL: https://grafana-istio-system.apps.<your clustername>
jaegerURL: https://jaeger-istio-system.apps.<your clustername>
This change will take a few minutes to be effective.