Wrote based on this talk: https://www.youtube.com/watch?v=91oylZSoYzM

Service Mesh provides lot’s of feature

  • mTLS
    • I don’t think if this same as zero trust or not but
    • usually we terminate the TLS at the load balancer level and we continue with http
    • With this, the sidecar proxy gives us ability to have mTLS without any configuration. So it will be done automatically
  • Observability
    • Not all, but some already export Prometheus metric exporter, so we can just redirected it to Grafana to make graph
    • Mean time to recover
  • Network Discovery
    • If i create new services, the operator can inject sidecar proxy automatically. No need to install this manually in every pod
  • Traffic Control
    • Affinity
    • Split traffic
    • Canary deployment

Sidecar

  • Transparent
  • Fine grained
  • No noisy neighbor
  • pod level encryption

Example

  • Istio
  • LinkerD
  • Consul

Security concern

  • Container race conditions
  • apps need to be aware
  • upgrades is challenging

eBPF & Sidecarless

eBPF extend the kernel functionallity to have network observability

Cillium

  • eBPF L3/L4
  • Container networking
  • Ingress
  • Mutual authentication
  • Cillium Network Policy

Architecture

Istio

Started as sidecar service mesh

  • Based on envoy
  • L4/L7 servce mesh
  • mTLS
  • observability, tracing audot logging
  • recently added ambient sidecarless

Ambient Mode

  • Support any CNI
  • separate L4 and L7
  • Gatweay api support

Kubernetes CNI (Container Network Interface)

XDS Protocol

github.com/cncf/xds

Sidenote