Istio architecture
- Istio is a
Service Mesh - A mesh refers to the network of interconnected service proxies (sidecars) and handle the communication between services
- It's a layer of proxies (envoy, for example) that intercept, monitor, secure and control communication between those services
- It uses a proxy (
EnvoyProxy) to intercept all the network traffic to services
Challenges of Microservice Architecture (Without Istio)
Kubernetes- The most successful framework for building distributed architectures
- Orchestration framework
- K8S alone is not good at the connection between the pods (with service concepts)
-
K8S alone doesn't give visibility of control over the connections
-
For each microservice the following aspects must be incorporated
Business LogicCommunication configurationsSecurity logicRetry logic-
Metrics & Tracing logic(telemetry) -
This adds complexity to the services instead of keeping them simple and lightweight
- The solution?
Service Mesh! A sidecar proxy keep all the non-business logic
Istio Service Mesh
- A service mesh is a layer of software and sits underneath the pods
Service Meshis thenetwork layerthat consists of theControl plane+Proxies- All the networking is routed through the service mesh software
- Telemetry functions (Like Prometheus and Grafana). Tracing. Security. Traffic management
- A
Control Planeautomatically inject asidecar proxyto each POD - The MS now talk to each other through those proxies

Data plane
Data planeis composed by intelligentproxies(envoy)- Data plane is managed by the control plane
-
Envoy,sidecar,proxyin Istio means the same! -
Istio creates a
proxycontainer inside of each pod. The proxy would be a ClusterIP in convention k8s networking - Proxies are collectively called the
Data Planein Istio -
Everything else is called
Control Plane: telemetry, pilot, tracing, etc -
sidecar mode: an envoy proxy for each pod in the cluster
- ambient mode: uses a single per-node L4 proxy
Control Plane
- The Control Plane manages and configures the proxies in the data plane
- The control plane is the
Istio Daemon(istiod): Manage and inject envoy proxies -
As of istio v1.5, multiple components (Galley, citadel, pilot, mixer) were condensed into a single component
istiod -
Galley: Reads the k8s format and transform into the istio format
- Pilot: Reads internal istio format and transform into envoy format (to be sent to proxies)
- Citadel:Manage TLS certificates! Enable TLS/SSL across the entire cluster
-
Mixer: Implements policy checks (policy pod) and telemetry (telemetry pod)
-
Istio
ingress gatewayandegress gatewayare also part of the control plane
Other components
- Grafana: Frontend interface for telemetry
- Jaeger: Tracing
- Kiali: Frontend interface for telemetry
- Prometheus: Scrape metrics to be presented in a good form