This repository contains the files to install Jaeger 1.16 in to a K8s(tested in a 1.17.5 k8s) cluster, it also includes a Flask application that spans information to Jaeger, Jaeger is exposed through an ingress nginx or envoy using gloo
- Clone the repository
git clone https://github.com/sergioarmgpl/jaeger1.16-python-flask-envoy-k8s.git
cd jaeger1.16-python-flask-envoy-k8s
- Build your image choose between index.py or index_base.py and rename it as index.py the image is supposed that use the jaeger installation in the observability namespace. index.py file generates span and metrics and index_basic.py just span
cd python3-flask-traced/
mv index_base.py index.py #(If applies)
- Edit the build.sh file with your username, please execute docker login and enter your credentials to push the image in a public repository the run the build.sh
/bin/bash build.sh or ./build
- Push your image to docker hub
docker push user/image
- Install your ingress controller, nginx or gloo(envoy)
- Install jaeger operator
/bin/bash jaeger_install.sh
- Install jaeger simplest installation
kubectl create -f simplest.yaml
- Deploy the flask application, will be deployed in the default namespace
kubectl create -f jaeger-app.yaml
- Expose your app with NodePort service type or as you want
kubectl expose deployment/jaeger-app --port=5000 --target-port=5000 --type=NodePort -n observability
- Create the ingress rule to expose Jaeger UI
kubectl create -f ingress.yaml
Note: Uncomment your desired ingress 8. Enter to Jaeger 9. Access your app to generate some span in Jaeger 10. Choose in the Service dropdown my-traced-service o my-hello-service depending in the case
Enjoy it!
The next release will include the metrics in Prometheus
install nginx-ingress with helm for quickstart install gloo ingress with this link: https://docs.solo.io/gloo/1.1.0/installation/ingress