SlideShare a Scribd company logo
Unmeshing the Service Mesh
(for the absolute beginner)
Omer Barel
Senior DevOps Consultant
omerb@codevalue.net
@omerbarel
https://about.me/omerbarel
http://codevalue.net
About Me
Omer Barel
 Husband to Naama
 Father of Leo & Theo
 Love Whiskey & Travelling
(preferably together! )
 Kubernetes Advocate
 @omerbarel
2
Agenda
 Istio
 Envoy
 Side-car injection process
 Ingress traffic management
 Service Mesh visualization
 Distributed Tracing
 Monitoring
3
The problem
 Networking is hard
 Microservices networking is even harder
 Multiple languages and frameworks
 Multiple protocols
 Key Concerns
 Implementation
 Authentication and Authorization
 Encryption
 Observability
4
Istio
5
Key Features
6
7
The Control Plane
The Data Plane
Kubernetes
8
The Control Plane
The Data Plane
Your Application
Istio
The Data Plane
• Pronounced Onvoy
• Originated @ Lyft, CNCF graduate (11/2018)
• The promise: Abstracts network infrastructure
logic and concerns from the developer
• High performance, edge, middle and service
proxy
• Sidecar container, inside the service pod
• Out-of-process, stand alone distributed proxy
• Any application, any language or runtime
• APIs for configuration management (via control
planes such as Istio)
• Rich observability (L7 traffic, distributed tracing,
etc.)
9
net
Networking Implementation
• Envoy is injected to the pod via K8s
mutating webhook admission
controller
• Both containers in the pod share the
same network namespace (iptables,
routes, etc.)
• Envoy modifies iptables rules to route
all traffic destined to the service to
route through it
• Envoy, in turn, redirects traffic to the
service
10
Pod
envoy
service a
192.168.0.105
eth0
loopback
iptables
routes
sockets
Pilot
11
• Routing between services
• Ingress traffic control
• Traffic Shifting (A-B Deployments)
• Canary deployments
• Circuit breaking
12
• Check
• ACLs / Authorization - Can service
A talk to service B?
• Rate limiting
• Report telemetry to backend
adapters
• Metrics (Prometheus)
• Logs (Elasticsearch)
• Tracing (Jaeger / Zipkin)
Mixer
13
• Certificate system for Envoy
• Mutual-TLS (bi-directional
validation)
Citadel
14
• Handles the configuration
of Istio control-plane
components:
• Validation
• Ingestion
• Processing
• Distribution
Galley
Demo
Service Mesh in
Action
15
Hipster Application Diagram
16
Side Car Injection Process
17
Deploy Hipster Application
Deploy Istio
helm install istio-init/ --name istio-
init --namespace istio-system
helm install istio/ --name istio --
namespace istio-system  --values
istio/values-istio-demo.yaml
Label the namespace
kubectl label namespace default istio-
injection=enabled
Deploy the application
kubectl apply -f hipster-
app/kubernetes-manifests.yaml
18
Ingress Traffic Management
19
Traffic Management Components
CRDs (Custom
Resource Definitions)
A way to extend Kubernetes with custom configurations
kind: Gateway Load balancer to route traffic into the mesh (ingress) or from the mesh (egress)
kind: VirtualService Routing rules for a service inside the mesh
kind: DestinationRule Policies to apply to the request post-routing
kind: ServiceEntry Enable requests to services outside the mesh
Kind: Sidecar Envoy sidecar proxy configuration
20
Traffic Management
21
kind: Gateway
kind: VirtualService
kind: DestinationRule
kind: ServiceEntry
Ingress Traffic
1. Traffic reaches the
gateway
2. Traffic to /frontend
redirected to the
frontend service
kubectl apply -f hipster-
app/istio-manifests.yaml
22
Service Mesh Visualization
23
Kiali in Action
kubectl -n istio-system port-
forward $(kubectl -n istio-
system get pod -l app=kiali -o
jsonpath='{.items[0].metadata.
name}') 20001:20001
24
Distributed Tracing
25
Jaeger in Action
kubectl port-forward -n istio-
system $(kubectl get pod -n
istio-system -l app=jaeger -o
jsonpath='{.items[0].metadata.
name}') 16686:16686
26
Monitoring
27
Metrics in Action
View metrics in Prometheus
kubectl -n istio-system port-
forward $(kubectl -n istio-system
get pod -l app=prometheus -o
jsonpath='{.items[0].metadata.nam
e}') 9090:9090
View dashboards in Grafana
kubectl -n istio-system port-
forward $(kubectl -n istio-system
get pod -l app=grafana -o
jsonpath='{.items[0].metadata.nam
e}') 3000:3000
28
Try it on your own!
https://bit.ly/2HSp1t5
29
Takeaways
 Service mesh moves the networking logic to the platform level
 Istio implements service mesh using envoy side-car proxy container
 We gain:
 Granular network & traffic management control
 Security (Authentication, Authorization & Encryption)
 Observability into key telemetry data of our microservices
 How to get started?
 Find a compelling use case
 Implement Incrementally
 Ask for help
30
Omer Barel
Senior DevOps Consultant
omerb@codevalue.net
@omerbarel
https://about.me/omerbarel
http://codevalue.net

More Related Content

PDF
Service mesh with istio
PDF
Introduction to Istio on Kubernetes
PPTX
Managing Egress with Istio
PDF
Singapore oif transport-sdn-junjie li
PDF
Accelerating the Deployment of Practical, Programmable Transport Networks
PDF
Next steps on Transport SDN - OIF Panel OFC 2015
PDF
Accelerating the Deployment of Practical, Programmable Transport Networks
PDF
Case Study: ParkMobile Builds for Scale with Kubernetes, Gloo and AWS Cloud
Service mesh with istio
Introduction to Istio on Kubernetes
Managing Egress with Istio
Singapore oif transport-sdn-junjie li
Accelerating the Deployment of Practical, Programmable Transport Networks
Next steps on Transport SDN - OIF Panel OFC 2015
Accelerating the Deployment of Practical, Programmable Transport Networks
Case Study: ParkMobile Builds for Scale with Kubernetes, Gloo and AWS Cloud

What's hot (20)

PDF
Managing microservices with Istio Service Mesh
PDF
Service mesh on Kubernetes - Istio 101
PDF
Istio By Example (extended version)
PPTX
Istio a service mesh
PPTX
Ramu droid for swach bharat abhiyaan
PPTX
Service mesh
PPTX
The Truth About the Service Mesh Data Plane
PDF
Cloudify and terraform integration
PPTX
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
PDF
Shedding Light on LINE Token Economy You Won't Find in Our White Paper
PDF
The Interoperability Challenge in Telecom and NFS Environments
PDF
Why NFV and Digital Transformation Projects Fail!
PPTX
Kubernetes 101
PPTX
Architecture Sustaining LINE Sticker services
PPTX
Microservices With Istio Service Mesh
PPTX
The Internet of things for integration people - UKCSUG - public version
PPT
PPT
Multi-cluster service mesh with GlooMesh
PPTX
Service mesh in action with onap
PPTX
Eric Brewer at SpringOne Platform 2017
Managing microservices with Istio Service Mesh
Service mesh on Kubernetes - Istio 101
Istio By Example (extended version)
Istio a service mesh
Ramu droid for swach bharat abhiyaan
Service mesh
The Truth About the Service Mesh Data Plane
Cloudify and terraform integration
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Shedding Light on LINE Token Economy You Won't Find in Our White Paper
The Interoperability Challenge in Telecom and NFS Environments
Why NFV and Digital Transformation Projects Fail!
Kubernetes 101
Architecture Sustaining LINE Sticker services
Microservices With Istio Service Mesh
The Internet of things for integration people - UKCSUG - public version
Multi-cluster service mesh with GlooMesh
Service mesh in action with onap
Eric Brewer at SpringOne Platform 2017
Ad

Similar to Unmeshing the service mesh (20)

PDF
Introduction-to-Service-Mesh-with-Istio-and-Kiali-OSS-Japan-July-2019.pdf
PDF
Introduction-to-Service-Mesh-with-Istio-and-Kiali-OSS-Japan-July-2019.pdf
PDF
Istio Up Running Using a Service Mesh to Connect Secure Control and Observe 1...
PDF
Service Mesh For Beginner
PDF
What is a Service Mesh and what can it do for your Microservices
PDF
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
PPTX
Kubernetes And Istio and Azure AKS DevOps
PPTX
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
PDF
Managing Microservices With The Istio Service Mesh on Kubernetes
PDF
Istio Triangle Kubernetes Meetup Aug 2019
PDF
Putting microservices on a diet with Istio
PPTX
Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...
PDF
Service Mesh - kilometer 30 in a microservice marathon
PDF
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
PPTX
Do You Need A Service Mesh?
PPTX
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
PDF
Istio in Action: Taking Kubernetes Traffic Control to the Next Level - Alex P...
PDF
How to Make Istio Work with Your App
PDF
How to Make Istio Work with Your App
PDF
Putting Microservices on a Diet: with Istio!
Introduction-to-Service-Mesh-with-Istio-and-Kiali-OSS-Japan-July-2019.pdf
Introduction-to-Service-Mesh-with-Istio-and-Kiali-OSS-Japan-July-2019.pdf
Istio Up Running Using a Service Mesh to Connect Secure Control and Observe 1...
Service Mesh For Beginner
What is a Service Mesh and what can it do for your Microservices
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Kubernetes And Istio and Azure AKS DevOps
Docker Dublin: Just What is a Service Mesh, and if I get one will it make eve...
Managing Microservices With The Istio Service Mesh on Kubernetes
Istio Triangle Kubernetes Meetup Aug 2019
Putting microservices on a diet with Istio
Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...
Service Mesh - kilometer 30 in a microservice marathon
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Do You Need A Service Mesh?
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Istio in Action: Taking Kubernetes Traffic Control to the Next Level - Alex P...
How to Make Istio Work with Your App
How to Make Istio Work with Your App
Putting Microservices on a Diet: with Istio!
Ad

More from CodeValue (20)

PPTX
Digital transformation buzzword or reality - Alon Fliess
PPTX
The IDF's journey to the cloud - Merav
PPTX
When your release plan is concluded at the HR office - Hanan Zakai
PPTX
We come in peace hybrid development with web assembly - Maayan Hanin
PPTX
The IoT Transformation and What it Means to You - Nir Dobovizky
PPTX
State in stateless serverless functions - Alex Pshul
PPTX
Will the Real Public API Please Stand Up? Amir Zuker
PPTX
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
PDF
Application evolution strategy - Eran Stiller
PPTX
Designing products in the digital transformation era - Eyal Livne
PPTX
Eerez Pedro: Product thinking 101 - Architecture Next
PDF
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
PDF
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
PDF
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
PDF
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
PDF
Vered Flis: Because performance matters! Architecture Next 20
PPTX
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
PDF
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
PPTX
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
PPTX
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Digital transformation buzzword or reality - Alon Fliess
The IDF's journey to the cloud - Merav
When your release plan is concluded at the HR office - Hanan Zakai
We come in peace hybrid development with web assembly - Maayan Hanin
The IoT Transformation and What it Means to You - Nir Dobovizky
State in stateless serverless functions - Alex Pshul
Will the Real Public API Please Stand Up? Amir Zuker
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
Application evolution strategy - Eran Stiller
Designing products in the digital transformation era - Eyal Livne
Eerez Pedro: Product thinking 101 - Architecture Next
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Vered Flis: Because performance matters! Architecture Next 20
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
System and Network Administration Chapter 2
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
L1 - Introduction to python Backend.pptx
PDF
AI in Product Development-omnex systems
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPT
Introduction Database Management System for Course Database
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
history of c programming in notes for students .pptx
PPTX
Introduction to Artificial Intelligence
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
top salesforce developer skills in 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administraation Chapter 3
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Nekopoi APK 2025 free lastest update
Design an Analysis of Algorithms II-SECS-1021-03
How Creative Agencies Leverage Project Management Software.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
System and Network Administration Chapter 2
ISO 45001 Occupational Health and Safety Management System
L1 - Introduction to python Backend.pptx
AI in Product Development-omnex systems
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Introduction Database Management System for Course Database
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
history of c programming in notes for students .pptx
Introduction to Artificial Intelligence
Operating system designcfffgfgggggggvggggggggg
How to Choose the Right IT Partner for Your Business in Malaysia
top salesforce developer skills in 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administraation Chapter 3
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Nekopoi APK 2025 free lastest update

Unmeshing the service mesh

  • 1. Unmeshing the Service Mesh (for the absolute beginner) Omer Barel Senior DevOps Consultant omerb@codevalue.net @omerbarel https://about.me/omerbarel http://codevalue.net
  • 2. About Me Omer Barel  Husband to Naama  Father of Leo & Theo  Love Whiskey & Travelling (preferably together! )  Kubernetes Advocate  @omerbarel 2
  • 3. Agenda  Istio  Envoy  Side-car injection process  Ingress traffic management  Service Mesh visualization  Distributed Tracing  Monitoring 3
  • 4. The problem  Networking is hard  Microservices networking is even harder  Multiple languages and frameworks  Multiple protocols  Key Concerns  Implementation  Authentication and Authorization  Encryption  Observability 4
  • 7. 7 The Control Plane The Data Plane Kubernetes
  • 8. 8 The Control Plane The Data Plane Your Application Istio
  • 9. The Data Plane • Pronounced Onvoy • Originated @ Lyft, CNCF graduate (11/2018) • The promise: Abstracts network infrastructure logic and concerns from the developer • High performance, edge, middle and service proxy • Sidecar container, inside the service pod • Out-of-process, stand alone distributed proxy • Any application, any language or runtime • APIs for configuration management (via control planes such as Istio) • Rich observability (L7 traffic, distributed tracing, etc.) 9
  • 10. net Networking Implementation • Envoy is injected to the pod via K8s mutating webhook admission controller • Both containers in the pod share the same network namespace (iptables, routes, etc.) • Envoy modifies iptables rules to route all traffic destined to the service to route through it • Envoy, in turn, redirects traffic to the service 10 Pod envoy service a 192.168.0.105 eth0 loopback iptables routes sockets
  • 11. Pilot 11 • Routing between services • Ingress traffic control • Traffic Shifting (A-B Deployments) • Canary deployments • Circuit breaking
  • 12. 12 • Check • ACLs / Authorization - Can service A talk to service B? • Rate limiting • Report telemetry to backend adapters • Metrics (Prometheus) • Logs (Elasticsearch) • Tracing (Jaeger / Zipkin) Mixer
  • 13. 13 • Certificate system for Envoy • Mutual-TLS (bi-directional validation) Citadel
  • 14. 14 • Handles the configuration of Istio control-plane components: • Validation • Ingestion • Processing • Distribution Galley
  • 17. Side Car Injection Process 17
  • 18. Deploy Hipster Application Deploy Istio helm install istio-init/ --name istio- init --namespace istio-system helm install istio/ --name istio -- namespace istio-system --values istio/values-istio-demo.yaml Label the namespace kubectl label namespace default istio- injection=enabled Deploy the application kubectl apply -f hipster- app/kubernetes-manifests.yaml 18
  • 20. Traffic Management Components CRDs (Custom Resource Definitions) A way to extend Kubernetes with custom configurations kind: Gateway Load balancer to route traffic into the mesh (ingress) or from the mesh (egress) kind: VirtualService Routing rules for a service inside the mesh kind: DestinationRule Policies to apply to the request post-routing kind: ServiceEntry Enable requests to services outside the mesh Kind: Sidecar Envoy sidecar proxy configuration 20
  • 21. Traffic Management 21 kind: Gateway kind: VirtualService kind: DestinationRule kind: ServiceEntry
  • 22. Ingress Traffic 1. Traffic reaches the gateway 2. Traffic to /frontend redirected to the frontend service kubectl apply -f hipster- app/istio-manifests.yaml 22
  • 24. Kiali in Action kubectl -n istio-system port- forward $(kubectl -n istio- system get pod -l app=kiali -o jsonpath='{.items[0].metadata. name}') 20001:20001 24
  • 26. Jaeger in Action kubectl port-forward -n istio- system $(kubectl get pod -n istio-system -l app=jaeger -o jsonpath='{.items[0].metadata. name}') 16686:16686 26
  • 28. Metrics in Action View metrics in Prometheus kubectl -n istio-system port- forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.nam e}') 9090:9090 View dashboards in Grafana kubectl -n istio-system port- forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.nam e}') 3000:3000 28
  • 29. Try it on your own! https://bit.ly/2HSp1t5 29
  • 30. Takeaways  Service mesh moves the networking logic to the platform level  Istio implements service mesh using envoy side-car proxy container  We gain:  Granular network & traffic management control  Security (Authentication, Authorization & Encryption)  Observability into key telemetry data of our microservices  How to get started?  Find a compelling use case  Implement Incrementally  Ask for help 30
  • 31. Omer Barel Senior DevOps Consultant omerb@codevalue.net @omerbarel https://about.me/omerbarel http://codevalue.net

Editor's Notes

  • #5: Multiple languages and frameworks (network library per language) Multiple protocols (HTTP/1, HTTP/2, gRPC, databases, caching, etc.) Implementation (retry, circuit breaking, rate limiting, timeouts, etc.) Observability (tracing, metrics & logging)
  • #7: Service Mesh: Network of Microservices Connect – Traffic Management: Fine-grained control of traffic behavior with rich routing rules, retries, failovers, and fault injection. Routing, circuit breaking, timeouts and retries. A/B Testing, Canary deployments & staged rollouts (percentage-based) Secure: Secure service-to-service communication in a cluster with strong identity-based authentication and authorization. Service to service mTLS encryption Control: A pluggable policy layer and configuration API supporting access controls, rate limits and quotas. Observe: Automatic metrics, logs, and traces for all traffic within a cluster, including cluster ingress and egress. Tracing (Jaeger), monitoring (Prometheus) and logging (Elasticsearch)
  • #10: Envoy modifies the routing table of the service to only talk to local host and all the traffic is between Envoy side cars Features: Modern C++ Filters and extensions in L3 / L4 and L7 Built in service discovery and health checking (active and passive)
  • #11: Admission controller: a piece of code that intercepts requests to the Kubernetes API server prior to persistence of the object, but after the request is authenticated and authorized Mutating: modify the object
  • #12: Circuit breaking – Envoy reads the response to the http and can tell if it’s a good / bad response and stop sending traffic based on the response (passive health check)
  • #13: The Envoy sidecar logically calls Mixer before each request to perform precondition checks, and after each request to report telemetry. The sidecar has local caching such that a large percentage of precondition checks can be performed from cache. Additionally, the sidecar buffers outgoing telemetry such that it only calls Mixer infrequently. Rate limit – did service A maxed its rate to talk to service B (more than 1000 requests per minutes, for example)
  • #19: Using 2 admission webhooks: Mutating Validating kubectl api-versions | grep admissionregistration Init Container Sidecar container When Kubernetes invokes the webhook, the admissionregistration.k8s.io/v1beta1#MutatingWebhookConfiguration configuration is applied. The default configuration injects the sidecar into pods in any namespace with the istio-injection=enabled label. The istio-sidecar-injector configuration map specifies the configuration for the injected sidecar The istio-init container sets up the pod network traffic redirection to/from the Istio sidecar proxy
  • #21: Notice that a VirtualService is tied to a specific Gateway and it defines a host that refers to the Kubernetes Service. (https://medium. /google-cloud/istio-routing-basics-14feab3c040e) A DestinationRule essentially maps labels to Istio subsets.
  • #25: The App graph type aggregates all versions of an app into a single graph node. The following example shows a single reviews node representing the three versions of the reviews app The Versioned App graph type shows a node for each version of an app, but all versions of a particular app are grouped together. The following example shows the reviews group box that contains the three nodes that represents the three versions of the reviews app. The Workload graph type shows a node for each workload in your service mesh. This graph type does not require you to use the app and versionlabels so if you opt to not use those labels on your components, this is the graph type you will use. The Service graph type shows a node for each service in your mesh but excludes all apps and workloads from the graph.
  • #27: https://istio.io/docs/tasks/telemetry/distributed-tracing/overview/ application needs to collect and propagate the following headers from the incoming request to any outgoing requests: x-request-id, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, x-b3-sampled, x-b3-flags, x-ot-span-context
  • #31: Observability: metrics, tracing, logging Control: routing rules, traffic management, circuit breaking Security: mtls