SlideShare a Scribd company logo
Linkerd – Service mesh with
service Discovery backend
Leandro Totino Pereira – System Engineer
Orchestration system for containers
Kubernetes – Container system platform based on etcd
Nomad – Container system based on consul
Nomad Kubernetes
Multi-datacenter Native Federation
Multitenancy No Yes
Load Balancing External (consul-templates) Basic Integrated (Services)
Workload Container, java, commands, lxc and
qemu hypervisors based.
Just Containers
Network abstraction Port hypervisor based Port/IP services context based
Multi-Datacenter yes No (federation)
abstrations jobs RC
Load Balancer integration External (consul-template or API) Services (basics load balancer) or API
Service Discovery
Itens Consul Etcd
Cluster protocol Raft (Serf) Raft
Datacenter-aware yes No (Kubernetes federation)
auto-configuration DNS yes no
Service Agents yes no
KV store yes yes
Handler and Watches yes no
events yes no
Benchmark I Result
Tests send 300,000 requests to key/value stores. One with jsonrpc, the other with gRPC. Both jsonrpc and gRPC code use only one TCP
connection. And another gRPC case with one TCP connection but with multiple clients:
Source: https://blog.gopheracademy.com/advent-2015/etcd-distributed-key-value-store-with-grpc-http2/
Benchmark II Result
The output shows that Protocol Buffers outperforms JSON and XML in both marshaling and unmarshaling. The result shows the following
numbers:
:
Protocol Buffers Marshal: 819 ns/op
Protocol Buffers Unmarshal: 1163 ns/op
JSON Marshal: 3316 ns/op
JSON Unmarshal: 7196 ns/op
XML Marshal: 9248 ns/op
XML Unmarshal: 30485 ns/op
Source: https://medium.com/@shijuvar/benchmarking-protocol-buffers-json-and-xml-in-go-57fa89b8525
Linkerd
• linkerd is a transparent proxy that adds service discovery, routing, failure handling, and visibility to modern
software applications
• Integration service discovery
• Handles tens of thousands of requests per second per instance with minimal latency overhead. Scales
horizontally with ease
• Provides dynamic, scoped, logical routing rules, enabling blue-green deployments, staging, canarying, failover,
and more.
• Zipkin, Prometheus and statsd integration
• Multi-container orchestration supported
• Cloud Native Computing Foundation
• 918 commit, 30 contributors, 2244 stars, 30 release
• Slack channel really active
Linkerd – Integration I
Nomad Integration
JOB Specs:
env { NOMAD_HOST=$HOSTNAME }
Kubernetes Integration
YAML Specs:
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: http_proxy
value: $(NODE_NAME):4140
Linkerd Integration II
Container
export http_proxy=$NOMAD_HOST:4140
Test:
For example, if we have a consul servisse named hello, we can resquest passing http header “Host: hello”
curl -sI -H 'Host: hello’ http://
Or if http_proxy is not defined:
curl -sI -H 'Host: hello’ http://$NOMAD_HOST / http://$NODE_NAME
Linkerd – architecture I
Linkerd – architecture II
1 – Application in containers register to service Discovery as service
2 – Linkerd gets services from services Discovery
3 – Application communicate by linkerd through http_proxy variable or directly by node_name
variable.
4 - Containers must connect to linkerd in your own host/hypervisor.
5 – Linkerd balance or forward connection to another linkerd.
Namerd
Dtab and Dentries
Dtab or Delegation tables (dtabs for short) are lists of routing rules (dentries) that take a “logical path”
which looks like to rewrite url paths.
Dtabs can (and often do) have more than one dentry. For example, we could list several stores:
3 - /smitten => /USA/CA/SF/Octavia/432;
2 - /iceCreamStore => /smitten;
1 - /iceCreamStore => /humphrys;
When we try to resolve a path that matches more than one prefix, bottom dentries take precedence.
So the path /iceCreamStore/try/allFlavors would resolve first as /humphrys/try/allFlavors. However, if
the address for humphrys is unknown (as in this example), we fall back to /smitten/try/allFlavors,
which ultimately resolves to /USA/CA/SF/Octavia/432/try/allFlavors.
Namers– Service discovery
Config Consul/Nomad:
namers:
- kind: io.l5d.consul
host: [ consul server ]
port: 2181
includeTag: true
useHealthCheck: true
Routing:
dtab: |
/svc => /#/io.l5d.consul/dc1/prod;
Config k8s:
namers:
- kind: io.l5d.k8s
host: ip [k8s master]
port: 8001
labelSelector: version
Routing:
dtab: |
/svc => /#/io.l5d.k8s/prod/http;
A namer binds a concrete name to a physical address which is used to setup service discovery backend
access.
Zipkin integration
Config:
telemetry:
- kind: io.l5d.zipkin
host: [zipkin-host]
port: 9410
sampleRate: 1.0
Thank you!
Question?
More information:
Linkedin
https://www.linkedin.com/in/leandro-totino-pereira-
06726227
Facebook:
https://www.facebook.com/leandro.totinopereira

More Related Content

PDF
KubeCon EU 2016: Kubernetes meets Finagle for Resilient Microservices
PDF
Istio presentation jhug
PDF
Magic Security Sprinkles: Secure, Resilient Microservices on CoreOS and Kuber...
PDF
Istio Triangle Kubernetes Meetup Aug 2019
PDF
Ambassador Kubernetes-Native API Gateway
PDF
Using Microservices Architecture and Patterns to Address Applications Require...
PDF
Stop reinventing the wheel with Istio by Mete Atamel (Google)
PPTX
An Open-Source Platform to Connect, Manage, and Secure Microservices
KubeCon EU 2016: Kubernetes meets Finagle for Resilient Microservices
Istio presentation jhug
Magic Security Sprinkles: Secure, Resilient Microservices on CoreOS and Kuber...
Istio Triangle Kubernetes Meetup Aug 2019
Ambassador Kubernetes-Native API Gateway
Using Microservices Architecture and Patterns to Address Applications Require...
Stop reinventing the wheel with Istio by Mete Atamel (Google)
An Open-Source Platform to Connect, Manage, and Secure Microservices

What's hot (20)

PDF
Load Balancing in the Cloud using Nginx & Kubernetes
PDF
Application Rollout - Istio
PDF
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
PDF
Security Tips to run Docker in Production
PDF
Kubernetes debug like a pro
PDF
Network Service Mesh
PDF
Service discovery in a microservice architecture using consul
PDF
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
PDF
Service mesh with istio
PDF
Load Balancing for Containers and Cloud Native Architecture
PDF
WTF Do We Need a Service Mesh?
PDF
Securing Microservices with Istio
PDF
Istio: Using nginMesh as the service proxy
PDF
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
PPTX
Container world hybridnetworking_rev2
PPTX
Kubernetes 1.16 and rancher 2.3 enhancements
PPTX
Connecting All Abstractions with Istio
PPTX
istio: service mesh for all
PDF
How and why we got Prometheus working with Docker Swarm
PDF
NYC Kubernetes Meetup: Ambassador and Istio - Flynn, Datawire
Load Balancing in the Cloud using Nginx & Kubernetes
Application Rollout - Istio
KubeCon NA 2017: Ambassador and Envoy (Envoy Salon)
Security Tips to run Docker in Production
Kubernetes debug like a pro
Network Service Mesh
Service discovery in a microservice architecture using consul
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Service mesh with istio
Load Balancing for Containers and Cloud Native Architecture
WTF Do We Need a Service Mesh?
Securing Microservices with Istio
Istio: Using nginMesh as the service proxy
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
Container world hybridnetworking_rev2
Kubernetes 1.16 and rancher 2.3 enhancements
Connecting All Abstractions with Istio
istio: service mesh for all
How and why we got Prometheus working with Docker Swarm
NYC Kubernetes Meetup: Ambassador and Istio - Flynn, Datawire
Ad

Similar to Linkerd – Service mesh with service Discovery backend (20)

PDF
WTF Do We Need a Service Mesh? By Anton Weiss.
PDF
Beyond static configuration
PPTX
Service Mesh Implementation with Linkerd
PPT
Dynamic routing in microservice oriented architecture
PDF
Docker Application to Scientific Computing
PDF
Open Source Networking Days- Service Mesh
PPTX
Containerization
PDF
Dockerffm meetup 20150113_networking
PPTX
linkerd: The Cloud Native Service Mesh
PPTX
Docker Networking - Current Status and goals of Experimental Networking
PDF
Extended and embedding: containerd update & project use cases
PDF
Docker-v3.pdf
PDF
Containerd Project Update: FOSDEM 2018
PDF
Service-Mesh-Presentation.pdf
PPTX
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
PDF
Container orchestration
PDF
Kubernetes Architecture - beyond a black box - Part 1
PDF
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
PDF
CoreOS, or How I Learned to Stop Worrying and Love Systemd
PPTX
Moby KubeCon 2017
WTF Do We Need a Service Mesh? By Anton Weiss.
Beyond static configuration
Service Mesh Implementation with Linkerd
Dynamic routing in microservice oriented architecture
Docker Application to Scientific Computing
Open Source Networking Days- Service Mesh
Containerization
Dockerffm meetup 20150113_networking
linkerd: The Cloud Native Service Mesh
Docker Networking - Current Status and goals of Experimental Networking
Extended and embedding: containerd update & project use cases
Docker-v3.pdf
Containerd Project Update: FOSDEM 2018
Service-Mesh-Presentation.pdf
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Container orchestration
Kubernetes Architecture - beyond a black box - Part 1
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
CoreOS, or How I Learned to Stop Worrying and Love Systemd
Moby KubeCon 2017
Ad

More from Leandro Totino Pereira (9)

PPTX
Backup multi-cloud solution based on named pipes
PPTX
Zabbix at scale with Elasticsearch
PPTX
Discover/Register Everything in consul
PPTX
Monitoring at scale - Sensu Kafka Kafka-connect Cassandra PrestoDB
PPTX
Automate schedule
PPTX
Real time analytics
PPTX
Gocd – Kubernetes/Nomad Continuous Deployment
PPTX
DynomiteDB - No spof High-availability Redis cluster solution
PPTX
DalmatinerDB and cockroachDB monitoring plataform
Backup multi-cloud solution based on named pipes
Zabbix at scale with Elasticsearch
Discover/Register Everything in consul
Monitoring at scale - Sensu Kafka Kafka-connect Cassandra PrestoDB
Automate schedule
Real time analytics
Gocd – Kubernetes/Nomad Continuous Deployment
DynomiteDB - No spof High-availability Redis cluster solution
DalmatinerDB and cockroachDB monitoring plataform

Recently uploaded (20)

PDF
PPT on Performance Review to get promotions
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
Construction Project Organization Group 2.pptx
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PDF
Digital Logic Computer Design lecture notes
PPTX
bas. eng. economics group 4 presentation 1.pptx
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PDF
composite construction of structures.pdf
PDF
Well-logging-methods_new................
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
additive manufacturing of ss316l using mig welding
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
Sustainable Sites - Green Building Construction
PPT on Performance Review to get promotions
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Model Code of Practice - Construction Work - 21102022 .pdf
UNIT-1 - COAL BASED THERMAL POWER PLANTS
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Construction Project Organization Group 2.pptx
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
Digital Logic Computer Design lecture notes
bas. eng. economics group 4 presentation 1.pptx
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
composite construction of structures.pdf
Well-logging-methods_new................
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
additive manufacturing of ss316l using mig welding
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Sustainable Sites - Green Building Construction

Linkerd – Service mesh with service Discovery backend

  • 1. Linkerd – Service mesh with service Discovery backend Leandro Totino Pereira – System Engineer
  • 2. Orchestration system for containers Kubernetes – Container system platform based on etcd Nomad – Container system based on consul Nomad Kubernetes Multi-datacenter Native Federation Multitenancy No Yes Load Balancing External (consul-templates) Basic Integrated (Services) Workload Container, java, commands, lxc and qemu hypervisors based. Just Containers Network abstraction Port hypervisor based Port/IP services context based Multi-Datacenter yes No (federation) abstrations jobs RC Load Balancer integration External (consul-template or API) Services (basics load balancer) or API
  • 3. Service Discovery Itens Consul Etcd Cluster protocol Raft (Serf) Raft Datacenter-aware yes No (Kubernetes federation) auto-configuration DNS yes no Service Agents yes no KV store yes yes Handler and Watches yes no events yes no
  • 4. Benchmark I Result Tests send 300,000 requests to key/value stores. One with jsonrpc, the other with gRPC. Both jsonrpc and gRPC code use only one TCP connection. And another gRPC case with one TCP connection but with multiple clients: Source: https://blog.gopheracademy.com/advent-2015/etcd-distributed-key-value-store-with-grpc-http2/
  • 5. Benchmark II Result The output shows that Protocol Buffers outperforms JSON and XML in both marshaling and unmarshaling. The result shows the following numbers: : Protocol Buffers Marshal: 819 ns/op Protocol Buffers Unmarshal: 1163 ns/op JSON Marshal: 3316 ns/op JSON Unmarshal: 7196 ns/op XML Marshal: 9248 ns/op XML Unmarshal: 30485 ns/op Source: https://medium.com/@shijuvar/benchmarking-protocol-buffers-json-and-xml-in-go-57fa89b8525
  • 6. Linkerd • linkerd is a transparent proxy that adds service discovery, routing, failure handling, and visibility to modern software applications • Integration service discovery • Handles tens of thousands of requests per second per instance with minimal latency overhead. Scales horizontally with ease • Provides dynamic, scoped, logical routing rules, enabling blue-green deployments, staging, canarying, failover, and more. • Zipkin, Prometheus and statsd integration • Multi-container orchestration supported • Cloud Native Computing Foundation • 918 commit, 30 contributors, 2244 stars, 30 release • Slack channel really active
  • 7. Linkerd – Integration I Nomad Integration JOB Specs: env { NOMAD_HOST=$HOSTNAME } Kubernetes Integration YAML Specs: env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP - name: http_proxy value: $(NODE_NAME):4140
  • 8. Linkerd Integration II Container export http_proxy=$NOMAD_HOST:4140 Test: For example, if we have a consul servisse named hello, we can resquest passing http header “Host: hello” curl -sI -H 'Host: hello’ http:// Or if http_proxy is not defined: curl -sI -H 'Host: hello’ http://$NOMAD_HOST / http://$NODE_NAME
  • 10. Linkerd – architecture II 1 – Application in containers register to service Discovery as service 2 – Linkerd gets services from services Discovery 3 – Application communicate by linkerd through http_proxy variable or directly by node_name variable. 4 - Containers must connect to linkerd in your own host/hypervisor. 5 – Linkerd balance or forward connection to another linkerd.
  • 12. Dtab and Dentries Dtab or Delegation tables (dtabs for short) are lists of routing rules (dentries) that take a “logical path” which looks like to rewrite url paths. Dtabs can (and often do) have more than one dentry. For example, we could list several stores: 3 - /smitten => /USA/CA/SF/Octavia/432; 2 - /iceCreamStore => /smitten; 1 - /iceCreamStore => /humphrys; When we try to resolve a path that matches more than one prefix, bottom dentries take precedence. So the path /iceCreamStore/try/allFlavors would resolve first as /humphrys/try/allFlavors. However, if the address for humphrys is unknown (as in this example), we fall back to /smitten/try/allFlavors, which ultimately resolves to /USA/CA/SF/Octavia/432/try/allFlavors.
  • 13. Namers– Service discovery Config Consul/Nomad: namers: - kind: io.l5d.consul host: [ consul server ] port: 2181 includeTag: true useHealthCheck: true Routing: dtab: | /svc => /#/io.l5d.consul/dc1/prod; Config k8s: namers: - kind: io.l5d.k8s host: ip [k8s master] port: 8001 labelSelector: version Routing: dtab: | /svc => /#/io.l5d.k8s/prod/http; A namer binds a concrete name to a physical address which is used to setup service discovery backend access.
  • 14. Zipkin integration Config: telemetry: - kind: io.l5d.zipkin host: [zipkin-host] port: 9410 sampleRate: 1.0