The Service Preview
traffic-agent runs as a sidecar to the container running your application. Service Preview will run alongside a service mesh without any changes needed to be made on your part.
Below is some information on how Service Preview runs alongside different service mesh implementations.
Istio is an open source Envoy-based service mesh implementation that transparently intercepts traffic to your containers and adds observability, security, and layer 7 routing to your services.
Service Preview can intercept services in an Istio service mesh with a couple of configuration details.
- Ensure the
istio-proxyis not injected in Service Preview components
Istio does some complicated networking to ensure that it can transparently intercept all traffic to your service. While this is great for making it easy to add a service mesh to your applications, it interferes with Service Preview's ability to intercept and proxy traffic to your local machine. To ensure that Istio will not automatically inject the
istio-proxy in Service Preview services, the Traffic Manager, Ambassador Injector, and teleproxy services must be annotated with annotated with
The Traffic Manager and Ambassador Injector have this annotation by default. You must manually set this in the
teleproxy pod that is created after running
edgectl connect for the first time. You can do this with the following
kubectl annotation po teleproxy sidecar.istio.io/inject='false'
- Ensure the
traffic-agentcan run alongside another Envoy proxy
traffic-agent is powered by Envoy proxy. Envoy, by default, does not like to run on the same host as other Envoy proxies. Since Istio is also powered by Envoy, you need to ensure that the
traffic-agent knows how to run in the same pod as the
This is easily done by setting
AMBASSADOR_ENVOY_BASE_ID: "1" in the
traffic-agent environment. Make sure this is set when injecting the
IMPORTANT At the moment, the Ambassador Injector does not automatically set
AMBASSADOR_ENVOY_BASE_ID. You will need to manually inject the
traffic-agentwhen intercepting a service in your Istio mesh.
Future versions of the Ambassador Injector will support setting