The software described in this documentation is either no longer supported or is in extended support.
Oracle recommends that you upgrade to a current supported release.

2.2 Deploying a Service Mesh (Advanced Method)

You can deploy each module required to create a service mesh in a Kubernetes cluster individually. There are more steps in this method, but you have explicit control of how each module is created and deployed to your cluster. This example assumes a Kubernetes module is already deployed and named mycluster.

To deploy a service mesh:

  1. Set up Oracle Linux Cloud Native Environment, and deploy a Kubernetes cluster by deploying the Kubernetes module. For information on installing and deploying Oracle Linux Cloud Native Environment and creating a Kubernetes cluster, see Getting Started.

  2. Use the olcnectl module create command to create a Helm module and add it to a Kubernetes module. For example, to create a Helm module named myhelm and add it to the Kubernetes module named mycluster:

    $ olcnectl --api-server 127.0.0.1:8091 module create \
      --environment-name myenvironment \
      --module helm \
      --name myhelm \
      --helm-kubernetes-module mycluster

    The --module option sets the module type to create, which is helm. You define the name of the Helm module using the --name option, which in this case is myhelm.

    The --helm-kubernetes-module option sets the name of the Kubernetes module into which Helm should be installed.

  3. Use the olcnectl module validate command to validate the Helm module can be deployed to the nodes. For example, to validate the Helm module named myhelm in the environment named myenvironment:

    $ olcnectl --api-server 127.0.0.1:8091 module validate \
      --environment-name myenvironment \
      --name myhelm
  4. Use the olcnectl module install command to deploy the Helm module. For example, to deploy the Helm module named myhelm in the environment named myenvironment:

    $ olcnectl --api-server 127.0.0.1:8091 module install \
      --environment-name myenvironment \
      --name myhelm
  5. Use the olcnectl module create command to create an Istio module and associate it with the Helm module. For example, to create an Istio module named myistio and associate it with the Helm module named myhelm:

    $ olcnectl --api-server 127.0.0.1:8091 module create \
      --environment-name myenvironment \
      --module istio \
      --name myistio \
      --istio-helm-module myhelm

    The --module option sets the module type to create, which is istio. You define the name of the Istio module using the --name option, which in this case is myistio.

    The --istio-helm-module option sets the name of the Helm module to use to deploy the Istio module. In this case, this is the Helm module named myhelm, which is already deployed.

    Note

    The Istio module also requires an instance of Prometheus. When you deploy an Istio module, an embedded instance of Prometheus is created and deployed. You do not need to provide any information for the embedded Prometheus instance.

  6. Use the olcnectl module validate command to validate the Istio module can be deployed to the nodes. For example, to validate the Istio module named myistio in the environment named myenvironment:

    $ olcnectl --api-server 127.0.0.1:8091 module validate \
      --environment-name myenvironment \
      --name myistio
  7. Use the olcnectl module install command to deploy the Istio module. For example, to deploy the Istio module named myistio in the environment named myenvironment:

    $ olcnectl --api-server 127.0.0.1:8091 module install \
      --environment-name myenvironment \
      --name myistio

    The Istio software packages are installed on the master nodes, and the Istio module is deployed into the Kubernetes cluster.