- Day 77. Let's break down a Service Mesh
- ๐ ์๋น์ค ๋ฉ์ ํ์ ๋ฐฐ๊ฒฝ
- ๐ ์๋น์ค ๋ฉ์๊ฐ ํด๊ฒฐํ๋ ค๋ ๋ฌธ์
- ๐ ์๋น์ค ๋ฉ์์ ์ฃผ์ ๊ธฐ๋ฅ
- ๐ ์๋น์ค ๋ฉ์ ๊ตฌ์ฑ ์์
- ๐ K8S๊ณผ ๊ด๊ณ
- ๐ ์๋น์ค ๋ฉ์ ์ ํ
- Day 79. Comparing Different Service Meshes
- ๐ ์๋น์ค ๋ฉ์ ์ข ๋ฅ๊ฐ ๋๋ฌด ๋ง์์
- ๐ Istio vs Linkerd vs AppMesh vs Consul vs Cilium
- ๐ ๊ฒฐ๋ก
โ๏ธ ํดํด 5๊ธฐ ์์ฆ 1 ์คํฐ๋ : 90DaysOfDevOps ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ฐํ์ผ๋ก ๊ณต๋ถํฉ๋๋ค!
๐งฉ 77 > Let's break down a Service Mesh
๐งฉ 79 > Comparing Different Service Meshes
90DaysOfDevOps/2023/day77.md at main ยท MichaelCade/90DaysOfDevOps
This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things Dev...
github.com
Day 77. Let's break down a Service Mesh
๐ ์๋น์ค ๋ฉ์ ํ์ ๋ฐฐ๊ฒฝ
: ์๋น์ค ๋ฉ์๋ MSA๊ฐ ๊ตด๋ฆฐ ์ค๋ ธ์ฐ๋ณผ.. โ๏ธ
- ๋ถ์ฐ ํ๊ฒฝ โ ์ ์ ์ปจํ
์ด๋ ๋ด๋ถ์์ ์คํ๋๋ ์์ ์ฝ๋ ๋ฉ์ด๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์
..
- ๊ทผ๋ฐ ์๋ก ํต์ ํ ์ ์์ด์ผ ํด!!
- ๊ทผ๋ฐ ๋ ์ํธํ๋๋ฉด์ ์น์ธ๋ ๋ฐฉ์์ด์ด์ผํด!!!!!
- ์๋ ๊ทผ๋ฐ ๋ ๋๊ฐ ํ๋ ์ฅ์ ๋๋ฒ๋ฆฌ๋ฉด ์ด๋ป๊ฒ ํด๊ฒฐํ์ง? โ ๋๋ฌด ๋ณต์กํด!!!!
- ๊ทผ๋ฐ ๋ ์ํธํ๋๋ฉด์ ์น์ธ๋ ๋ฐฉ์์ด์ด์ผํด!!!!!
- ๊ทผ๋ฐ ์๋ก ํต์ ํ ์ ์์ด์ผ ํด!!
- ๋คํธ์ํฌ์ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ โ ๋๋ฌด ์์กดํด์๋ ์ ๋๋๋ฐ, ๊ทธ๋ ๋ค๊ณ ๊ณ์ ์ฝ๋๋ฅผ ์์ ํ๊ธฐ์ ๋โฆ.
์๋น์ค ๋ฉ์
= ์ธ๋ถํ๋ ํธ๋ํฝ ์ ์ด, AuthN, AuthZ ๋ฐ observability๋ฅผ ์ํ ๊ณ์ธต์ ์ ๊ณตํ์ฌ ์๋น์ค ๊ฐ ํต์ ์ ์ฒ๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํฌ ๊ณ์ธต
๐ ์๋น์ค ๋ฉ์๊ฐ ํด๊ฒฐํ๋ ค๋ ๋ฌธ์
- ๋ง์ดํฌ๋ก ์๋น์ค ํ์ฅํ๋ฉฐ ์ ์ํด์ผ ํ๋ ๋ถ์์ ํ๊ณ ๋ฐ๋๋ ๋ณต์กํ ๋คํธ์ํฌ
- RBAC, AuthZ, AuthN์ด ์ค์ํ ํ๊ฒฝ์์ (๊ฑฐ์) zero-trust ๋ณด์ฅ
- ์ํธํ, ํธ๋ํฝ ํํฐ๋ง ๊ธฐ์ โ ๋ฐ์ดํฐ ์์ค ๋ฐฉ์ง ์ ๊ทผ ๋ณด์ฅ
- ์ ํ๋ฆฌ์ผ์ด์ ์ํ์ ์์ฒญ ์ฒ๋ฆฌํ๋ ํน์ฑ ๊ฒฐ์ ๋ฐ ์๊ฐํ
- ์๋น์ค์ ๊ฐ์ฉ์ฑ๊ณผ ์์ ์ฑ ๋ณด์ฅ
๐ ์๋น์ค ๋ฉ์์ ์ฃผ์ ๊ธฐ๋ฅ
- ์๋น์ค์ ๋ก๋ ๋ฐธ๋ฐ์ฑ
- ์ฌ๋ฌ ํ๊ฒฝ ์ฌ์ด์์ ์๋น์ค ์ฐพ๊ธฐ
- HTTP์ gRPC ์์ฒญ์ ๊ท ์ผํ ํธ๋ํฝ ์ ์ด์ ๋ผ์ฐํ
- ์์ฒญ ์ฌ์๋ ์๋ํ
- ๋ณต์๋ ฅ ์ํ ์คํจ ์ฃผ์ (Fault injection for resiliency)
- ๋ก๊น , ๋ชจ๋ํฐ๋ง, ๋ฉํธ๋ฆญ
- Peer AuthN, AuthZ
- mTLS ์ฌ์ฉํ ์๋น์คโ ์๋น์ค ์ํธํ
๐ ์๋น์ค ๋ฉ์ ๊ตฌ์ฑ ์์

- Control plane : ๊ตฌ์ฑ ๋ฐฐํฌ (configuration deploy)
- Data Plane : ์ฌ์ด๋์นด(sidecar)์ ๊ฒ์ดํธ์จ์ด(gateway) ๋ ๋ค์ ๊ตฌํ๋์ด ์๋ค
- k8s cluster์์ ์์นํ๊ณ ์๋ค.
- ๋์ ๋ฐฉ์
- Operator โ ํธ๋ํฝ ๋ผ์ฐํ /๋ณด์ ์ ์ฑ ์ ์ฉ
- Control Plane โ ๊ฒ์ดํธ์จ์ด๋ ์ฌ์ด๋์นด ํ๋ก์์ ๊ตฌ์ฑ/์ ์ฑ push
- Gateway/Sidecar โ ํธ๋ํฝ ๊ท์น ์ ์ฉ
- ์ ์ฌ์ง ์์
- ๋งจ ์ฒ์ Ingress ๊ฒ์ดํธ์จ์ด๊ฐ ์ธ๋ถ ์ธ๋ฐ์ด๋ ์์ฒญ์ ๋ฐ๋๋ค.
- ์์ฒญ ๊ฒฝ๋ก์ ์ฒซ ๋ฒ์งธ ์๋น์ค์ธ Service A๋ก ์ ๋ฌ
- Service A๋ ์ด ์์ฒญ ์ฒ๋ฆฌํ ์ฌ์ด๋์นด๊ฐ ์๊ณ , Control Plane์ ์๊ฒฉ ์ธก์ (telemetry) ๋ฐ์ดํฐ๋ฅผ ์ ์ก
๐ K8S๊ณผ ๊ด๊ณ
์๋น์ค ๋ฉ์๊ฐ ํด ์ฃผ๋ ์ฑ ์๋คโฆ
- ์ธ์ฆ์ rotation ๋ฐ ๊ด๋ฆฌ
- ์๋น์ค ๊ฐ ์ํธํ
- Ingress์ ์๋น์คโ์๋น์ค ๋ผ์ฐํ ์ผ๋ก ์ธ๋ถํ๋ ํธ๋ํฝ ๋ผ์ฐํ
- ์ ํ๋ฆฌ์ผ์ด์ ์ํ์ ๊ฐ์์ฑ/๋ฉํธ๋ฆญ
๐ ์๋น์ค ๋ฉ์ ์ ํ
- Istio : Google, IBM, Lyft๊ฐ ๋ง๋ค์ด์ Solo.io์์ ์ ์ง์ค โ
Istio
A service mesh for observability, security in depth, and management that speeds deployment cycles.
istio.io
- AppMesh : ECS, EKS, EC2 ๊ฐ์ AWS ์๋น์ค์ ์ ์ฉ

์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ์๋น์ค - AWS App Mesh - Amazon Web Services
์ ํ๋ฆฌ์ผ์ด์ ๋คํธ์ํน ์๋น์ค - AWS App Mesh - Amazon Web Services
AWS App Mesh๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ค ๋คํธ์ํน์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฌ ์ ํ์ ์ปดํจํ ์ธํ๋ผ์ ๊ฑธ์น ์๋น์ค ๊ฐ ํต์ ์ ์ง์ํ ์ ์์ต๋๋ค.
aws.amazon.com
AWS App Mesh๋? - AWS App Mesh
AWS App Mesh๋? - AWS App Mesh
์ด ํ์ด์ง์ ์์ ์ด ํ์ํ๋ค๋ ์ ์ ์๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ค๋ง์์ผ ๋๋ ค ์ฃ์กํฉ๋๋ค. ์ ๊น ์๊ฐ์ ๋ด์ด ์ค๋ช ์๋ฅผ ํฅ์์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ง์ํด ์ฃผ์ญ์์ค.
docs.aws.amazon.com
- Consul : Hashicorp์์ ๋ง๋ ๊ฒ
Consul by HashiCorp
Consul is a service networking solution to automate network configurations, discover services, and enable secure connectivity across any cloud or runtime.
www.consul.io
Consul Documentation | Consul | HashiCorp Developer
Consul Documentation | Consul | HashiCorp Developer
Consul documentation provides reference material for all features and options available in Consul.
developer.hashicorp.com
- Linkerd : Istio์ ๊ฐ๋ฒผ์ด ๋ฒ์ โ

Overview
Linkerd is a service mesh for Kubernetes. It makes running services easier and safer by giving you runtime debugging, observability, reliability, and securityโall without requiring any changes to your code. For a brief introduction to the service mesh mo
linkerd.io
The world's most advanced service mesh.
The world's most advanced service mesh.
Linkerd adds critical security, observability, and reliability to your Kubernetes stack, without any code changes.
linkerd.io
- Cilium : eBPF๋ฅผ ํ์ฉํ์ฌ Linux ์ปค๋์ ์ฌ์ฉํ์ฌ ํจํท ์ฒ๋ฆฌ๋ฅผ ์ต์ ํํ๋ ์ปจํ ์ด๋ ๋คํธ์ํน ์ธํฐํ์ด์ค
Cilium - Cloud Native, eBPF-based Networking, Observability, and Security
Cilium - Cloud Native, eBPF-based Networking, Observability, and Security
Cloud Native, eBPF-based Networking, Observability, and Security
cilium.io
Cilium Service Mesh
Revolutionizing networking and simplify operations
cilium.io
Day 79. Comparing Different Service Meshes
๐ ์๋น์ค ๋ฉ์ ์ข ๋ฅ๊ฐ ๋๋ฌด ๋ง์์
Service Mesh | Open Source or Proprietary | Notes |
Istio | Open Source | Widely adopted and abstracted |
Linkerd | Open Source | Built by Buoyant |
Consul | Open Source | Owned by Hashcorp, Cloud offering available |
Kuma | Open Source | Maintained by Kong |
Traefik Mesh | Open Source | Specialized Proxy |
Open Service Mesh | Open Source | By Microsoft |
Gloo Mesh | Proprietary | Built by http://solo.io/ ontop of Istio |
AWS App Mesh | Proprietary | AWS specific services |
OpenShift Service Mesh | Proprietary | Built by Redhad, based on Istio |
Tanzu Service Mesh | Proprietary | SaaS based on Istio, built by VMware |
Anthos Service Mesh | Proprietary | SaaS based on Istio, built by Google |
Bouyant Cloud | Proprietary | SaaS based on Linkerd |
Cilium Service Mesh | Open Source | Originally a CNI |
๐ Istio vs Linkerd vs AppMesh vs Consul vs Cilium
Feature | Istio | Linkerd | AppMesh | Consul | Cilium |
Project Creators | Google, Lyft, IBM, Solo | Buoyant | AWS | Hashicorp | Isovalent |
Service Proxy | Envoy, Rust-Proxy (experimental) | Linkerd2-proxy | Envoy | Interchangeable, Envoy default | Per-node Envoy |
Ingress Capabilities | Yes via the Istio Ingress-Gateway | No; BYO | Yes via AWS | Envoy | Cilium-Based Ingress |
Traffic Management (Load Balancing, Traffic Split) | Yes | Yes | Yes | Yes | Yes, but manual Envoy config required for traffic splits |
Resiliency Capabilities (Circuit Breaking, Retries/Timeouts, Faults, Delays) | Yes | Yes, no Circuit Breaking or Delays | Yes, No Fault or Delays | Yes, No Fault or Delays | Circuit Breaking, Retries and Timeouts require manual Envoy configuration, no other resiliency capabilities |
Monitoring | Access Logs, Kiali, Jaegar/Zikin, Grafana, Prometheus, LETS, OTEL | LETS, Prometheus, Grafana, OTEL | AWS X-RAY, and Cloud Watch provides these | Datadog, Jaegar, Zipkin, OpenTracing, OTEL, Honeycomb | Hubble, OTEL, Prometheus, Grafana |
Security Capabilities (mTLS, External CA) | Yes | Yes | Yes | Yes | Yes, with Wireguard |
Getting Started | Yes | Yes | Yes | Yes | Yes |
Production Ready | Yes | Yes | Yes | Yes | Yes |
Key Features | Sidecar and Sidecar-less, Wasm Extensibility, VM support, Multi-cloud Support, Data Plane extensions | Simplistic and non-invasive | Highly focused and tight integration into AWS Ecosystem | Tight integration into Nomad and Hashicorp Ecosystem | Usage of eBPF for enhanced packet processing, Cilium Control Plane used to manage Service Mesh, No sidecars |
Limitations | Complex, learning curve | Strictly K8s, additional config for BYO Ingress | Limited to just AWS services | Storage tied to Consul and not K8s | Not a complete Service Mesh, requires manual configuration |
Protocol Support (TCP, HTTP 1.1 & 2, gRPC) | Yes | Yes | Yes | Yes | Yes |
Sidecar Modes | Sidecar and Sidecar-less | Sidecar | Sidecar | Sidecar | No sidecar |
CNI Redirection | Istio CNI Plugin | linkerd-cni | ProxyConfiguration Required | Consul CNI | eBPF Kernel processing |
Platform Support | K8s and VMs | K8s | EC2, EKS, ECS, Fargate, K8s on EC2 | K8s, Nomad, ECS, Lambda, VMs | K8s, VMs, Nomad |
Multi-cluster Mesh | Yes | Yes | Yes, only AWS | Yes | Yes |
Governance and Oversight | Istio Community | Linkered Community | AWS | Hashicorp | Cilium Community |
๐ ๊ฒฐ๋ก
- Istio : ํ๋ซํผ ์ง์, ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅ์ฑ, ํ์ฅ์ฑ, ๋๋ถ๋ถ์ ํ๋ก๋์
์ง์ โ ์ต๊ณ ๋ค~
- Linkerd : ๋ ๊ฐ๋ฒผ์ด ๋ฒ์
- AppMesh : ๊ธฐ๋ฅ์ด ๋ง์ง๋ง AWS ์ํ๊ณ์๋ง ์ ์ฉ
- Consul : ๋ซ๋ฐท
- Cilium CNI : eBPF ์ฌ์ฉํ๊ณ ๋คํธ์ํน ์คํ ํ์ฅโฆ ๋ฒ ์์ง ๊ฐ ๊ธธ ๋ฉ์๋ค
'๐ DevOps & Cloud > 90DaysOfDevOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Service Mesh (6) - Ambient Mesh (1) | 2024.04.27 |
---|---|
Service Mesh (5) - Security (1) | 2024.04.27 |
Service Mesh (4) - Observability (0) | 2024.04.26 |
Service Mesh (3) - Traffic Engineering (0) | 2024.04.26 |
Service Mesh (2) - Istio Getting-started (0) | 2024.04.26 |