Learning Library

← Back to Library

Istio Service Mesh: Core Concepts

Key Points

  • Service meshes like Istio provide mutual TLS, dynamic traffic routing (e.g., canary releases), retries, circuit breaking, and fine‑grained access control, removing the need to embed these capabilities in application code.
  • Istio injects an Envoy sidecar proxy next to each container in a Kubernetes pod, intercepting all inbound and outbound traffic to enforce policies and route requests.
  • Configuration is expressed as Kubernetes CRDs (YAML) that Galley validates and Pilot translates into Envoy configurations, automatically distributing them to the sidecar proxies.
  • By moving networking intelligence to the mesh, developers keep microservices small and business‑focused while gaining end‑to‑end observability, security, and flexible traffic management.

Full Transcript

# Istio Service Mesh: Core Concepts **Source:** [https://www.youtube.com/watch?v=6zDrLvpfCK4](https://www.youtube.com/watch?v=6zDrLvpfCK4) **Duration:** 00:05:07 ## Summary - Service meshes like Istio provide mutual TLS, dynamic traffic routing (e.g., canary releases), retries, circuit breaking, and fine‑grained access control, removing the need to embed these capabilities in application code. - Istio injects an Envoy sidecar proxy next to each container in a Kubernetes pod, intercepting all inbound and outbound traffic to enforce policies and route requests. - Configuration is expressed as Kubernetes CRDs (YAML) that Galley validates and Pilot translates into Envoy configurations, automatically distributing them to the sidecar proxies. - By moving networking intelligence to the mesh, developers keep microservices small and business‑focused while gaining end‑to‑end observability, security, and flexible traffic management. ## Sections - [00:00:00](https://www.youtube.com/watch?v=6zDrLvpfCK4&t=0s) **Why Use an Istio Service Mesh** - Ram Vennam outlines the key benefits of adopting a service mesh—mutual TLS security, dynamic traffic routing, resilience features, observability, and fine‑grained access control—using a UI‑to‑catalog‑to‑inventory example deployed on Kubernetes. - [00:03:07](https://www.youtube.com/watch?v=6zDrLvpfCK4&t=187s) **Istio Architecture: Proxies, Citadel, and Resources** - The passage outlines Istio’s proxy‑based policy, telemetry, and Citadel identity services, and introduces the three primary configuration objects—Gateway, VirtualService, and DestinationRule—used to route and manage traffic. ## Full Transcript
0:00Hi I'm Ram Vennam, I'm from the IBM Cloud team 0:02and today I want to talk to you about 0:04why you might want to use a service mesh, 0:06how the Istio service mesh works, 0:08and some core concepts for you to get started quickly. 0:11Let's use this example application: 0:13I have a UI microservice 0:15talking to two versions of catalog, 0:17which talk to inventory. 0:18All of these are services deployed inside of a Kubernetes cluster. 0:22The number one reason why someone uses a service mesh 0:26is because they want to secure their workload. 0:28So, they want mutual TLS ("Transport Layer Security") 0:30when one service is talking to another. 0:33Next, they want to dynamically configure 0:36how the services are connected to one another. 0:38In this example there's version 1 and version 2. 0:41So, I might want to send 90% of the traffic to version 1, 0:44and then 10% of the traffic to version 2, 0:46while I do testing and incremental rollouts. 0:49I might also want to try 0:51adding retry policies and circuit braking to harden my system. 0:55Three, I want to observe how my application is doing end-to-end 1:00- not just if a service is up or down 1:03- but see where the bottlenecks are in the system 1:05and how traffic is flowing. 1:07And four, I want to control 1:10who has access to talk to what. 1:12In this example, UI is allowed to talk to catalog, 1:14and catalog is allowed to talk to inventory. 1:16But UI is not allowed to talk to inventory directly, 1:19and rogue containers cannot talk to inventory service. 1:22You can get more granular than that, 1:24and say that UI is allowed to make an HTTP Git request, 1:27and catalog is allowed to make a post request to inventory. 1:30In the past, we used to have our developers 1:34program all of these features directly into their application code. 1:38That slowed down the dev cycle, 1:40it made these microservices bigger, 1:42and just generally made everything less flexible. 1:45But now there's a better way, 1:46and that's the service mesh. 1:48You keep your application small and business-focused, 1:51and instead, you dynamically program the intelligence into the network 1:56- and that's exactly what Istio does. 1:58So, when you have Istio installed, 2:00the first thing it will do is automatically inject proxies 2:05next to each one of your containers. 2:06These proxies are Envoy proxies, 2:10and the proxy itself runs in a container 2:13next to your application container, 2:15but it runs inside the same Kubernetes pod. 2:19Now when UI wants to talk to catalog, 2:22the proxy will actually intercept that request, 2:26apply any policies, 2:27and then route traffic to the proxy on the other side, 2:30and then the catalog proxy will receive that request and then forward it down to the catalog. 2:35Istio will configure each one of these proxies 2:39with your desired configuration. 2:41Istio extends Kubernetes using CRDs. 2:44So, to apply an Istio configuration you just write your YAML, 2:48and then apply it to Kubernetes. 2:50The Istio Galley component will receive that YAML, 2:54validate it, and then hand it over to Istio Pilot. 2:59Pilot will convert that configuration 3:01to envoy configuration, 3:03and distribute it to each one of the proxies. 3:07If you want the proxies to add additional policies and roles, 3:12there is a policy component, 3:15and then these proxies constantly report telemetry information about what's going 3:21on in your system to the Istio telemetry component. 3:26And last, but not least, there is Citadel. 3:29Citadel is responsible for providing strong identity 3:33to each one of the services in your system. 3:35It also generates certificates 3:38and rolls it out to each one of the proxies, 3:40so that the proxies can do mutual TLS when they're talking to one another. 3:46To get started with Istio 3:47and to configure Istio, 3:49there are 3 main resources that you need to learn about. 3:52First there's a gateway. 3:55Gateway is like a load balancer 3:57that sits at the edge of your mesh, 3:59and accepts incoming and outgoing HTTP and TCP connections. 4:03Next, to direct traffic from Gateway to your services, 4:06you create a virtual service. 4:10A virtual service can be bound to a gateway and direct traffic to UI, 4:14or it could be bound to a service and then direct traffic to your other services 4:19where you can apply policies like 90% and 10% traffic split rules. 4:23Once traffic is routed, 4:25you can apply rules on top of that traffic, 4:28such as TLS settings or circuit braking, 4:32and those are done using destination rules. 4:39And those are the 3 main resources you need to know about Istio. 4:43I'm actually going to put "policy" and "telemetry" in asterisks 4:47because there's some refactoring that's going on with these components. 4:50The logic is being moved outside of this control plane 4:53and into the proxies themselves 4:55to avoid the additional network hop. 4:57This translates to improved performance. 5:00Thanks for watching this video. 5:02If you want to see more videos like this 5:03leave a comment below 5:05and please "like" and subscribe.