mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-07 00:48:01 +01:00
136 lines
6.0 KiB
Plaintext
136 lines
6.0 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// * service_mesh/v2x/ossm-custom-resources.adoc
|
|
|
|
[id="ossm-deploying-jaeger_{context}"]
|
|
= Deploying the distributed tracing platform
|
|
|
|
The {JaegerShortName} has predefined deployment strategies. You specify a deployment strategy in the Jaeger custom resource (CR) file. When you create an instance of the {JaegerShortName}, the {JaegerName} Operator uses this configuration file to create the objects necessary for the deployment.
|
|
|
|
The {JaegerName} Operator currently supports the following deployment strategies:
|
|
|
|
* *allInOne* (default) - This strategy is intended for development, testing, and demo purposes and it is not for production use. The main back-end components, Agent, Collector, and Query service, are all packaged into a single executable, which is configured (by default) to use in-memory storage. You can configure this deployment strategy in the SMCP.
|
|
+
|
|
[NOTE]
|
|
====
|
|
In-memory storage is not persistent, which means that if the Jaeger instance shuts down, restarts, or is replaced, your trace data will be lost. And in-memory storage cannot be scaled, since each pod has its own memory. For persistent storage, you must use the `production` or `streaming` strategies, which use Elasticsearch as the default storage.
|
|
====
|
|
|
|
* *production* - The production strategy is intended for production environments, where long term storage of trace data is important, and a more scalable and highly available architecture is required. Each back-end component is therefore deployed separately. The Agent can be injected as a sidecar on the instrumented application. The Query and Collector services are configured with a supported storage type, which is currently Elasticsearch. Multiple instances of each of these components can be provisioned as required for performance and resilience purposes. You can configure this deployment strategy in the SMCP, but in order to be fully customized, you must specify your configuration in the Jaeger CR and link that to the SMCP.
|
|
|
|
* *streaming* - The streaming strategy is designed to augment the production strategy by providing a streaming capability that sits between the Collector and the Elasticsearch back-end storage. This provides the benefit of reducing the pressure on the back-end storage, under high load situations, and enables other trace post-processing capabilities to tap into the real-time span data directly from the streaming platform (https://access.redhat.com/documentation/en-us/red_hat_amq/7.6/html/using_amq_streams_on_openshift/index[AMQ Streams]/ https://kafka.apache.org/documentation/[Kafka]). You cannot configure this deployment strategy in the SMCP; you must configure a Jaeger CR and link that to the SMCP.
|
|
|
|
[NOTE]
|
|
====
|
|
The streaming strategy requires an additional Red Hat subscription for AMQ Streams.
|
|
====
|
|
|
|
[id="ossm-deploying-jaeger-default_{context}"]
|
|
== Default {JaegerShortName} deployment
|
|
|
|
If you do not specify Jaeger configuration options, the `ServiceMeshControlPlane` resource will use the `allInOne` Jaeger deployment strategy by default. When using the default `allInOne` deployment strategy, set `spec.addons.jaeger.install.storage.type` to `Memory`. You can accept the defaults or specify additional configuration options under `install`.
|
|
|
|
.Control plane default Jaeger parameters (Memory)
|
|
[source,yaml, subs="attributes,verbatim"]
|
|
----
|
|
apiVersion: maistra.io/v2
|
|
kind: ServiceMeshControlPlane
|
|
metadata:
|
|
name: basic
|
|
spec:
|
|
version: v{MaistraVersion}
|
|
tracing:
|
|
sampling: 10000
|
|
type: Jaeger
|
|
addons:
|
|
jaeger:
|
|
name: jaeger
|
|
install:
|
|
storage:
|
|
type: Memory
|
|
----
|
|
|
|
[id="ossm-deploying-jaeger-production-min_{context}"]
|
|
== Production {JaegerShortName} deployment (minimal)
|
|
|
|
To use the default settings for the `production` deployment strategy, set `spec.addons.jaeger.install.storage.type` to `Elasticsearch` and specify additional configuration options under `install`. Note that the SMCP only supports configuring Elasticsearch resources and image name.
|
|
|
|
.Control plane default Jaeger parameters (Elasticsearch)
|
|
[source,yaml, subs="attributes,verbatim"]
|
|
----
|
|
apiVersion: maistra.io/v2
|
|
kind: ServiceMeshControlPlane
|
|
metadata:
|
|
name: basic
|
|
spec:
|
|
version: v{MaistraVersion}
|
|
tracing:
|
|
sampling: 10000
|
|
type: Jaeger
|
|
addons:
|
|
jaeger:
|
|
name: jaeger #name of Jaeger CR
|
|
install:
|
|
storage:
|
|
type: Elasticsearch
|
|
ingress:
|
|
enabled: true
|
|
runtime:
|
|
components:
|
|
tracing.jaeger.elasticsearch: # only supports resources and image name
|
|
container:
|
|
resources: {}
|
|
----
|
|
|
|
|
|
[id="ossm-deploying-jaeger-production_{context}"]
|
|
== Production {JaegerShortName} deployment (fully customized)
|
|
|
|
The SMCP supports only minimal Elasticsearch parameters. To fully customize your production environment and access all of the Elasticsearch configuration parameters, use the Jaeger custom resource (CR) to configure Jaeger.
|
|
|
|
Create and configure your Jaeger instance and set `spec.addons.jaeger.name` to the name of the Jaeger instance, in this example: `MyJaegerInstance`.
|
|
|
|
.Control plane with linked Jaeger production CR
|
|
[source,yaml, subs="attributes,verbatim"]
|
|
----
|
|
apiVersion: maistra.io/v2
|
|
kind: ServiceMeshControlPlane
|
|
metadata:
|
|
name: basic
|
|
spec:
|
|
version: v{MaistraVersion}
|
|
tracing:
|
|
sampling: 1000
|
|
type: Jaeger
|
|
addons:
|
|
jaeger:
|
|
name: MyJaegerInstance #name of Jaeger CR
|
|
install:
|
|
storage:
|
|
type: Elasticsearch
|
|
ingress:
|
|
enabled: true
|
|
----
|
|
|
|
[id="ossm-deploying-jaeger-streaming_{context}"]
|
|
== Streaming Jaeger deployment
|
|
|
|
To use the `streaming` deployment strategy, you create and configure your Jaeger instance first, then set `spec.addons.jaeger.name` to the name of the Jaeger instance, in this example: `MyJaegerInstance`.
|
|
|
|
.Control plane with linked Jaeger streaming CR
|
|
[source,yaml, subs="attributes,verbatim"]
|
|
----
|
|
apiVersion: maistra.io/v2
|
|
kind: ServiceMeshControlPlane
|
|
metadata:
|
|
name: basic
|
|
spec:
|
|
version: v{MaistraVersion}
|
|
tracing:
|
|
sampling: 1000
|
|
type: Jaeger
|
|
addons:
|
|
jaeger:
|
|
name: MyJaegerInstance #name of Jaeger CR
|
|
----
|