Installation

- 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:

  • Istio By Example: A very good and brief overview of different topics by Megan O’Keefe.

  • Istio: The Istio documentation

Prerequisites

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)

  • preference

  • recommendation

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

  • Jaeger

  • Kiali

  • Service Mesh

Elasticsearch is a very memory intensive application. Per default it will request 16GB of memory which can be reduced on Lab environments.

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
       dashboard:
         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.