Currently we are evaluating istio to get the benefit of it for our kubernetes cluster running in GKE.
We have two parts of a transaction - initiate and execute. During initiate phase(Client sends a REST call), the anchoring app or orchestrator app interacts with database several times, IBM MQ and few more microservices and then finishes the initiate part. On the execute side, same anchoring app or orchestrator receives REST call from same client and interacts with database, MQ and few other microservices to complete the execute part of the transaction.
Without Istio in the cluster:
- Initiate transaction avg response time is around 330-350 ms
- Execute transaction avg response time is around 450-500 ms
With Istio in the cluster:
- Initiate transaction avg response time is around 1300 ms to 1400 ms
- Execute transaction avg response time is around 2300-2400 ms
Our profile setting is as follows for a namespace:
istioctl manifest apply --set profile=demo --set values.tracing.enabled=true
- All applications and MQ is running as docker container in one namespace where the istio is installed with above manifest.
- We have implemented Haproxy as ingress controller which is a different namespace and istio is not applied there.
- Database server is outside the kubernetes cluster and running in a VM
Could you please comment about this response time degradation post istio installation in the cluster?
Are we missing something?
Thanks in advance.