- Helm installed
Have a Kubernetes cluster running, or start Minikube:
minikube start --memory=4096kubectl create ns strimzi
kubectl create ns kafka
helm repo add strimzi https://strimzi.io/charts
helm install strimzi strimzi/strimzi-kafka-operator -n strimzi --set watchNamespaces={kafka} --wait --timeout 300sWhen Strimzi is finished installing, we will see the operator in a running state:
kubectl get pods -n strimzi
NAME READY STATUS RESTARTS AGE
strimzi-cluster-operator-58fcdbfc8f-mjdxg 1/1 Running 0 46sWith the operator running, we can now create a Kafka cluster!
kubectl apply -f deploy/kafka/kafka-cluster.yaml -n kafkaWe can verify successful installation of the cluster with:
kubectl get pods -n kafka
NAME READY STATUS RESTARTS AGE
my-cluster-entity-operator-765f64f4fd-2t8mk 3/3 Running 0 90s
my-cluster-kafka-0 1/1 Running 0 113s
my-cluster-zookeeper-0 1/1 Running 0 2m12skubectl apply -f deploy/kafka/ticks.yaml
kubectl apply -f deploy/kafka/processed.yamlkubectl create ns jaeger
kubectl apply -f deploy/jaeger/jaeger-simplest.yaml -n jaegerThis is not the recommended way to install Jaeger for production usage, but it's sufficient for our needs.
We can verify successful installation with:
kubectl get pods -n jaeger
NAME READY STATUS RESTARTS AGE
jaeger-64ffd7f658-vbwwg 1/1 Running 0 5sEnsure each of the services has the following dependency present in pom.xml:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-opentelemetry-exporter-jaeger</artifactId>
</dependency>Verify the configuration for the jaeger endpoint is uncommented in application.properties:
quarkus.opentelemetry.tracer.exporter.jaeger.endpoint=http://simplest-collector.jaeger:14250If using Minikube, run:
eval $(minikube -p minikube docker-env)Build and deploy the services:
cd viewer
mvn verify -Dquarkus.kubernetes.deploy=true
cd ..
# To deploy the processor with nacking for health check verification
cd processor-health
# To deploy the processor without nacking
cd processor
mvn verify -Dquarkus.kubernetes.deploy=true
cd ..
cd ticker
mvn verify -Dquarkus.kubernetes.deploy=true
cd ..Verify they're all working with kubectl get pods.
mvn verify -Dquarkus.container-image.build=trueWith the application started, open a browser window to the SSE endpoint to see the results:
export VIEWER_URL=`minikube service --url observability-viewer`
echo "Open url: ${VIEWER_URL}"