Linkerd 개요
Linkerd는 Kubernetes용 서비스 메시입니다. 코드를 전혀 바꾸지 않고도 런타임 디버깅, 옵저버빌리티(observability), 신뢰성, 보안 기능을 제공해서 서비스를 더 쉽고 안전하게 운영할 수 있게 도와줘요. 컨트롤 플레인과 초경량 Rust 마이크로 프록시로 구성되며, CNCF의 graduated 프로젝트로 완전한 오픈소스로 개발되고 있어요.
출처: Linkerd Overview
본문
Linkerd는 Kubernetes용 서비스 메시입니다. 코드를 전혀 바꾸지 않고도 런타임 디버깅, 옵저버빌리티(observability), 신뢰성, 보안 기능을 제공해서 서비스를 더 쉽고 안전하게 운영할 수 있게 도와줘요.
서비스 메시 모델에 대한 간단한 소개가 필요하다면 'The Service Mesh: What Every Software Engineer Needs to Know about the World's Most Over-Hyped Technology'를 읽어보길 추천해요.
Linkerd는 완전한 오픈소스이며 Apache v2 라이선스로 배포되고, Cloud Native Computing Foundation의 graduated 프로젝트예요. Linkerd는 Linkerd GitHub 조직에서 공개적으로 개발되고 있어요.
Linkerd는 *컨트롤 플레인(control plane)*과 *데이터 플레인(data plane)*이라는 두 가지 기본 구성요소로 이루어져 있어요. Kubernetes 클러스터에 Linkerd 컨트롤 플레인을 설치한 다음, 워크로드에 데이터 플레인을 추가하면(이걸 '메싱(meshing)' 또는 '인젝션(injecting)'이라고 해요) 서비스 메시의 마법이 시작돼요!
Linkerd는 몇 분 안에 시작할 수 있어요!
어떻게 동작하나요
Linkerd는 각 서비스 인스턴스 옆에 초경량의 투명한 '마이크로 프록시(micro-proxy)'를 설치하는 방식으로 동작해요. 이 프록시들은 서비스로 들어오고 나가는 모든 트래픽을 자동으로 처리해요. 투명하기 때문에, 이 프록시들은 매우 잘 계측된 아웃-오브-프로세스 네트워크 스택처럼 동작하며, 텔레메트리를 컨트롤 플레인으로 보내고 컨트롤 신호를 받아요. 이런 설계 덕분에 Linkerd는 과도한 지연을 유발하지 않으면서 서비스와 주고받는 트래픽을 측정하고 조작할 수 있어요.
가능한 한 작고 가볍고 안전하게 만들기 위해, Linkerd의 마이크로 프록시는 Rust로 작성되었고 Linkerd에 특화되어 있어요. 이 마이크로 프록시에 대해 더 알고 싶다면 'Under the hood of Linkerd's state-of-the-art Rust proxy, Linkerd2-proxy' 블로그 글을 참고해요. (Linkerd가 왜 Envoy를 안 쓰는지 궁금하다면 'Why Linkerd doesn't use Envoy' 블로그 글에서 그 이유를 확인할 수 있어요.)
Linkerd 받기
Linkerd는 다양한 패키지와 채널로 제공돼요. 자세한 내용은 Linkerd Releases 페이지를 확인해 보세요.
다음 단계
몇 분 안에 Linkerd를 시작해 보거나, Linkerd의 구성요소와 이들이 어떻게 연결되는지 더 자세히 알고 싶다면 아키텍처 문서를 확인해 보세요.