×

To install Red Hat OpenShift Service Mesh, first install the required Operators on OpenShift Container Platform and then create a ServiceMeshControlPlane resource to deploy the control plane.

This basic installation is configured based on the default OpenShift settings and is not designed for production use.  Use this default installation to verify your installation, and then configure your service mesh for your specific environment.

Prerequisites

The following steps show how to install a basic instance of Red Hat OpenShift Service Mesh on OpenShift Container Platform.

Operator overview

Red Hat OpenShift Service Mesh requires the following four Operators:

  • OpenShift Elasticsearch - (Optional) Provides database storage for tracing and logging with the distributed tracing platform (Jaeger). It is based on the open source Elasticsearch project.

  • Red Hat OpenShift distributed tracing platform (Jaeger) - Provides distributed tracing to monitor and troubleshoot transactions in complex distributed systems. It is based on the open source Jaeger project.

  • Kiali Operator provided by Red Hat - Provides observability for your service mesh. You can view configurations, monitor traffic, and analyze traces in a single console. It is based on the open source Kiali project.

  • Red Hat OpenShift Service Mesh - Allows you to connect, secure, control, and observe the microservices that comprise your applications. The Service Mesh Operator defines and monitors the ServiceMeshControlPlane resources that manage the deployment, updating, and deletion of the Service Mesh components. It is based on the open source Istio project.

Do not install Community versions of the Operators. Community Operators are not supported.

Installing the Operators

To install Red Hat OpenShift Service Mesh, install the following Operators in this order. Repeat the procedure for each Operator.

  • OpenShift Elasticsearch

  • Red Hat OpenShift distributed tracing platform (Jaeger)

  • Kiali Operator provided by Red Hat

  • Red Hat OpenShift Service Mesh

If you have already installed the OpenShift Elasticsearch Operator as part of OpenShift Logging, you do not need to install the OpenShift Elasticsearch Operator again. The Red Hat OpenShift distributed tracing platform (Jaeger) Operator will create the Elasticsearch instance using the installed OpenShift Elasticsearch Operator.

Procedure
  1. Log in to the OpenShift Container Platform web console as a user with the cluster-admin role. If you use Red Hat OpenShift Dedicated, you must have an account with the dedicated-admin role.

  2. In the OpenShift Container Platform web console, click OperatorsOperatorHub.

  3. Type the name of the Operator into the filter box and select the Red Hat version of the Operator. Community versions of the Operators are not supported.

  4. Click Install.

  5. On the Install Operator page for each Operator, accept the default settings.

  6. Click Install. Wait until the Operator has installed before repeating the steps for the next Operator in the list.

    • The OpenShift Elasticsearch Operator is installed in the openshift-operators-redhat namespace and is available for all namespaces in the cluster.

    • The Red Hat OpenShift distributed tracing platform (Jaeger) is installed in the openshift-distributed-tracing namespace and is available for all namespaces in the cluster.

    • The Kiali Operator provided by Red Hat and the Red Hat OpenShift Service Mesh Operator are installed in the openshift-operators namespace and are available for all namespaces in the cluster.

  7. After all you have installed all four Operators, click OperatorsInstalled Operators to verify that your Operators installed.

Configuring the Service Mesh Operator to run on infrastructure nodes

This task should only be performed if the Service Mesh Operator runs on an infrastructure node.

If the operator will run on a worker node, skip this task.

Prerequisites
  • The Service Mesh Operator must be installed.

  • One of the nodes comprising the deployment must be an infrastructure node. For more information, see "Creating infrastructure machine sets."

Procedure
  1. List the operators installed in the namespace:

    $ oc -n openshift-operators get subscriptions
  2. Edit the Service Mesh Operator Subscription resource to specify where the operator should run:

    $ oc -n openshift-operators edit subscription <name> (1)
    1 <name> represents the name of the Subscription resource. The default name of the Subscription resource is servicemeshoperator.
  3. Add the nodeSelector and tolerations to spec.config in the Subscription resource:

    spec:
      config:
        nodeSelector: (1)
          node-role.kubernetes.io/infra: ""
        tolerations: (2)
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          value: reserved
        - effect: NoExecute
          key: node-role.kubernetes.io/infra
          value: reserved
    1 Ensures that the operator pod is only scheduled on an infrastructure node.
    2 Ensures that the pod is accepted by the infrastructure node.

Verifying the Service Mesh Operator is running on infrastructure node

Procedure
  • Verify that the node associated with the Operator pod is an infrastructure node:

    $ oc -n openshift-operators get po -l name=istio-operator -owide

Next steps

  • The Red Hat OpenShift Service Mesh Operator does not create the Service Mesh custom resource definitions (CRDs) until you deploy a Service Mesh control plane. You can use the ServiceMeshControlPlane resource to install and configure the Service Mesh components. For more information, see Creating the ServiceMeshControlPlane.