본문 바로가기
Infra2026년 5월 16일5분 읽기

Linkerd 2.16 Sidecar-less — Istio Ambient와 비교한 결정 가이드

YS
김영삼
조회 412
Linkerd 2.16 Sidecar-less — Istio Ambient와 비교한 결정 가이드

핵심 요약

Linkerd 2.16이 sidecar-less 모드를 stable로 올렸다. Rust 기반 per-node micro-proxy로 sidecar 인젝션 없이 mTLS와 트래픽 정책을 적용한다. Istio Ambient와 컨셉은 비슷하지만 구현과 운영 부담이 다르다. 200노드 클러스터 전환 결과 노드당 메모리 38% 절감.

1. 왜 sidecar를 버리나

전통적 sidecar 모델은 파드마다 Envoy/proxy 컨테이너 1개를 더 띄운다. 1000파드 클러스터면 1000개의 추가 프로세스. 메모리 50~80MB씩 잡고, 파드 시작 시 인젝션 지연, 컨테이너 재시작/업데이트 시 정책 동기화 어려움.

2. Linkerd 2.16 아키텍처

  • node-proxy: Rust로 짠 경량 프록시. DaemonSet으로 노드당 1개
  • policy-controller: 컨트롤 플레인은 그대로
  • HTTP/2 mTLS: 노드 간 자동 암호화

3. 설치 — 5분

linkerd install --crds | kubectl apply -f -
linkerd install --set proxy.mode=node | kubectl apply -f -

# 네임스페이스에 적용
kubectl label ns default linkerd.io/inject=enabled

# 정책
cat <<EOF | kubectl apply -f -
apiVersion: policy.linkerd.io/v1beta3
kind: AuthorizationPolicy
metadata:
  name: api-only-from-web
  namespace: default
spec:
  targetRef:
    kind: Server
    name: api-server
  requiredAuthenticationRefs:
  - kind: ServiceAccount
    name: web
EOF

4. 실측 — 리소스

지표Sidecar 모드Sidecar-less차이
노드당 메시 메모리2.4GB1.5GB-38%
p50 레이턴시 추가+0.4ms+0.6ms+0.2ms
p99 레이턴시 추가+1.2ms+1.8ms+0.6ms
파드 시작 시간+3.2s+0s-3.2s
처리량92K rps89K rps-3%

5. Istio Ambient와 비교

항목Linkerd 2.16Istio Ambient 1.24
아키텍처node-proxy 단일ztunnel + waypoint 2계층
L7 정책 비용node-proxy에서 처리waypoint 별도 배포 필요
구성 복잡도낮음중간
기능 폭핵심 mTLS+정책VirtualService 등 풍부
메모리(노드당)120MB160MB(ztunnel만)

6. 한계

  • L7 정책 일부 제한: 헤더 기반 라우팅 룰이 Istio보다 단순
  • 외부 트래픽: egress gateway가 별도로 필요한 경우 sidecar 부분 잔존
  • 가시성: 파드 단위 메트릭 일부 손실. 노드 집계로만 보임

7. 마이그레이션 — 점진 전환

# 1. node-proxy DaemonSet 먼저 배포
linkerd upgrade --set proxy.mode=mixed | kubectl apply -f -

# 2. 네임스페이스 단위로 모드 전환
kubectl annotate ns checkout linkerd.io/proxy-mode=node --overwrite
kubectl rollout restart deploy -n checkout

# 3. 모두 끝나면 sidecar 인젝션 끔
kubectl label ns checkout linkerd.io/inject=node --overwrite

8. 도입 결정

  • Linkerd 적합: 단순한 mTLS+기본 정책만 필요, 운영 인력 최소화 원함
  • Istio Ambient 적합: VirtualService/EnvoyFilter 의존, 멀티클러스터 복잡 라우팅
  • 아직 sidecar 유지: 노드 OS 커널 제약, 특수 eBPF 통합 필요

참고

  • linkerd.io/2.16/features/node-proxy
  • istio.io/latest/docs/ambient

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록