From 3ee962f1ac38f31d346f6af237fe9084c14d7860 Mon Sep 17 00:00:00 2001 From: Eddie Arrage Date: Wed, 11 Apr 2018 02:44:51 +0000 Subject: Modified validation script for tracing to support CI - Changed default Jaeger ports to 16686 for use with basic kubernetes port-forward and CI scripts - Added CLI to validate script to disable istio service check by default. This requires at least a single http request to istio-ingress after Jaeger deployment. It can be enabled with 'python validate.py -s'. Port and IP address for Jaeger can optionally be specified with '-ip' and '-port' options - Modified tracing doc to add k8s port-forward example in addition to k8s expose Change-Id: I10fb4d3cccfa50370d44ed7446f67a49c538bba9 Signed-off-by: Eddie Arrage --- docs/development/design/tracing.rst | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/development/design/tracing.rst b/docs/development/design/tracing.rst index 79d686c..b83274c 100644 --- a/docs/development/design/tracing.rst +++ b/docs/development/design/tracing.rst @@ -13,20 +13,26 @@ following command:: kubectl apply -n istio-system -f https://raw.githubusercontent.com/jaegertracing/jaeger-kubernetes/master/all-in-one/jaeger-all-in-one-template.yml The standard Jaeger REST port is at 16686. To make this service available outside of the -Kubernetes cluster, use the following command:: +Kubernetes cluster via any node IP in the cluster, use the following command:: kubectl expose -n istio-system deployment jaeger-deployment --port=16686 --type=NodePort -Kubernetes will expose the Jaeger service on another port, which can be found with:: +Kubernetes will expose the Jaeger service on another port from 30000-32767 and the assignment can +be found with:: kubectl get svc -n istio-system An example listing from the command above is shown below where the Jaeger service is exposed -externally on port 30888:: +externally on port 30888 in this case:: istio-system jaeger-deployment NodePort 10.104.113.94 16686:30888/TCP -Jaeger will be accessible using the host IP of the Kubernetes cluster and port provided. +Jaeger will be accessible using the host IP of any node in Kubernetes cluster and port provided. +With this method, the Jaeger UI will also be available from a remote host. If external access is +required to Jaeger but restricted to cluster localhost(s), an alternate method is to use the +**port-forward** command in the foreground, as shown below:: + + kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=jaeger -o jsonpath='{.items[0].metadata.name}') 16686:16686 ******** Validate @@ -40,5 +46,6 @@ It validates the installation with the following criteria: #. Existence of Jaeger all-in-one deployment using Kubernetes #. Jaeger service is accessible using IP address and port configured in installation steps -#. Jaeger can retrieve default service listing for default Istio components -#. TBD - consider installation of production setup with cassandra or elastic search +#. Optionally, if Jaeger can retrieve service listing for default Istio components + (istio-ingress, istio-mixer). At least one HTTP request must be sent to istio-ingress + after initial Jaeger deployment for this validation to function. -- cgit 1.2.3-korg