Linkerd 기능
Linkerd는 아래에 정리된 것처럼 다양한 기능을 제공해요. 실습 튜토리얼과 가이드는 Linkerd 태스크 문서에서, 자세한 레퍼런스는 Linkerd 레퍼런스 문서에서 확인할 수 있어요.
출처: Linkerd Features
본문
Linkerd의 기능
- HTTP, HTTP/2, gRPC 프록시 — Linkerd는 HTTP, HTTP/2, gRPC 연결에 대해 메트릭, 로드 밸런싱, 재시도 등 고급 기능을 자동으로 활성화해요.
- TCP 프록시 및 프로토콜 감지 — TLS 연결, WebSocket, HTTP 터널링을 포함한 모든 TCP 트래픽을 프록시할 수 있어요.
- 재시도와 타임아웃 — Linkerd는 HTTP와 gRPC 요청에 대해 재시도와 타임아웃을 적용할 수 있어요.
- 자동 mTLS — 메시로 연결된 애플리케이션 간의 모든 통신에 상호 TLS(Transport Layer Security)를 자동으로 활성화해요.
- Ingress — 원하는 인그레스 컨트롤러와 함께 동작할 수 있어요.
- 텔레메트리와 모니터링 — Linkerd를 통과하는 모든 서비스에서 메트릭을 자동으로 수집해요.
- 로드 밸런싱 — HTTP, HTTP/2, gRPC 연결에서 모든 대상 엔드포인트에 요청을 자동으로 분산시켜요.
- 권한 정책(Authorization Policy) — 메시로 연결된 서비스 간에 허용되는 트래픽 유형을 제한할 수 있어요.
- 자동 프록시 주입 — 어노테이션을 기반으로 데이터 플레인 프록시를 파드에 자동으로 주입해요.
- CNI 플러그인 — NET_ADMIN 권한을 피하기 위해 init-container 대신 선택적으로 CNI 플러그인을 사용할 수 있어요.
- 대시보드와 클러스터 내 메트릭 스택 — CLI 도구와 대시보드를 포함한 완전한 클러스터 내 메트릭 스택을 제공해요.
- 분산 추적(Distributed Tracing) — Linkerd에서 분산 추적 지원을 활성화할 수 있어요.
- 동적 요청 라우팅 — 개별 HTTP 요청을 그 속성에 따라 라우팅할 수 있어요.
- Egress — 이그레스 트래픽을 모니터링하고 정책을 적용하는 기능을 제공해요.
- 장애 주입(Fault Injection) — 서비스에 프로그래밍 방식으로 장애를 주입하는 메커니즘을 제공해요.
- Gateway API 지원 — 특정 기능을 구성하기 위해 Gateway API 리소스 유형을 사용해요.
- 고가용성(High Availability) — Linkerd 컨트롤 플레인은 HA(high availability) 모드로 실행될 수 있어요.
- HTTP 액세스 로깅 — Linkerd 프록시가 HTTP 액세스 로그를 출력하도록 구성할 수 있어요.
- Iptables-nft 지원 — Linkerd의 init container는 필요한 시스템에서 iptables-nft를 사용할 수 있어요.
- IPv6 지원 — Linkerd는 IPv6 전용 및 듀얼 스택 클러스터 모두와 호환돼요.
- 멀티 클러스터 통신 — 서로 다른 클러스터에서 실행 중인 서비스를 투명하고 안전하게 연결할 수 있어요.
- 네이티브 사이드카 — Kubernetes 네이티브 사이드카를 지원하며, 특히 Jobs 지원과 컨테이너 시작 시 레이스 조건 등 사이드카 컨테이너의 오래된 불편 사항을 해결해요.
- 비 Kubernetes 워크로드(메시 확장)
- 레이트 리밋팅(Rate Limiting) — 잘못 동작하는 클라이언트로부터 서비스를 보호하는 간단하고 성능 좋은 HTTP 로컬 레이트 리밋 솔루션을 제공해요.
- 서비스 프로파일(Service Profiles) — 라우트별 메트릭과 재시도, 타임아웃을 활성화할 수 있어요.
- 토폴로지 인지 라우팅 — 노드의 zone 라벨을 기반으로 엔드포인트를 소비하는 Kubernetes 토폴로지 인지 라우팅 구현을 제공해요.
- 트래픽 분할(카나리, 블루/그린 배포) — 트래픽의 일부를 다른 서비스로 동적으로 보낼 수 있어요.