서비스 메시 프록시 개요
서비스 메시 프록시 개요
Consul이 서비스 메시에서 프록시를 어떻게 사용하는지 개요를 설명해 드릴게요. 프록시는 수정되지 않은 애플리케이션이 서비스 메시의 다른 서비스에 연결할 수 있게 해주는 일종의 서비스예요.
출처: 문서
본문
이 문서에서는 Consul이 서비스 메시에서 프록시를 어떻게 사용하는지에 대한 개요를 제공해요. 프록시는 수정되지 않은 애플리케이션이 서비스 메시의 다른 서비스에 연결할 수 있게 해주는 일종의 서비스예요. Consul은 내장 L4 프록시와 함께 제공되며 Envoy에 대한 일급(first class) 지원이 있어요. 또한 환경에 다른 프록시를 연결하고 Consul에서 구성을 적용하여 프록시 동작을 정의할 수 있어요.
프록시 사용 사례
Consul에서 프록시를 구성하여 여러 유형의 기능을 수행하도록 할 수 있어요.
서비스 메시 프록시
서비스 메시 프록시는 서비스 메시에서 통신에 사용하는 모든 유형의 프록시 서비스예요. 사이드카 프록시와 게이트웨이 같은 특수한 프록시 구현은 서비스 메시 프록시의 하위 집합이에요. 서비스 메시 프록시를 배포하는 방법에 대한 지침은 서비스 메시 프록시 서비스 배포를 참고해 주세요.
사이드카
사이드카 프록시는 인바운드 및 아웃바운드 서비스 연결을 투명하게 처리하는 서비스 메시 프록시 구현이에요. 사이드카는 TLS 연결을 자동으로 감싸고 확인해요. 컨테이너화되지 않은 네트워크에서 메시의 각 서비스는 자체 사이드카 프록시를 가져야 해요.
자세한 내용은 사이드카 서비스 배포를 참고해 주세요.
게이트웨이
서비스 메시 프록시를 게이트웨이 서비스로 작동하도록 구성할 수 있으며, 게이트웨이는 피어링된 클러스터, WAN 연합 데이터센터, 메시 외부 노드 등 서로 다른 네트워크 영역 간의 서비스 간 트래픽을 허용해요. Consul은 여러 유형의 게이트웨이 기능과 함께 제공되지만, 게이트웨이가 기반 기능을 제공해요.
자세한 내용은 게이트웨이 개요를 참고해 주세요.
동적 트래픽 제어
프록시를 구성하여 트래픽을 동적으로 리다이렉트하거나 분할하여 장애 조치 전략을 구현하고, 새 기능을 테스트하고, 애플리케이션의 새 버전을 배포할 수 있어요. 지리적으로 가장 가까운 서비스나 기능적으로 동일하다고 지정한 서로 다른 네트워크 영역의 서비스로 장애 조치하는 등 복잡한 시나리오를 활성화하기 위해 구성을 조합할 수 있어요.
자세한 내용은 다음 문서를 참고해 주세요:
지원되는 프록시
Consul은 매우 구성 가능한 오픈 소스 엣지 서비스 프록시인 Envoy 프록시에 대한 일급 지원이 있어요. Consul은 로컬 에이전트에 Envoy의 xDS 구성 API를 제공하는 gRPC 서비스를 선택적으로 노출하여 Envoy를 구성해요. 자세한 내용은 다음 문서를 참고해 주세요:
L4 네트워크 트래픽을 지원하는 Consul의 내장 프록시 서비스를 사용할 수 있으며, 이는 테스트 및 개발에 적합하지만 프로덕션 환경에는 권장되지 않아요. 자세한 내용은 내장 프록시 참조를 참고해 주세요.
워크플로
다음 절차는 프록시를 구현하는 방법을 설명해요:
-
전역 프록시 설정 구성. proxy defaults 구성 엔트리에서 서비스 메시에 배포된 모든 프록시에 대한 전역 통과(passthrough) 설정을 구성할 수 있어요. 이 단계는 필수는 아니지만 중앙 구성에서 공통 동작을 정의할 수 있게 해줘요.
-
서비스 메시 프록시 배포. 서비스 정의에서 프록시 동작을 구성하고 프록시를 Consul에 등록해요.
-
프록시 서비스 시작. 프록시는 Consul에 등록된 서비스 목록에 나타나며, 서비스 메시에서 트래픽을 라우팅하기 시작하려면 먼저 시작해야 해요.
동적 업스트림에는 네이티브 통합이 필요
서비스 메시 프록시는 동적 업스트림을 지원하지 않아요. 런타임에만 사용 가능한 동적 종속성이 필요한 애플리케이션이라면 애플리케이션을 Consul 서비스 메시에 네이티브로 통합해야 해요. 통합 후 애플리케이션은 HTTP API 또는 DNS 인터페이스를 사용하여 메시의 다른 서비스에 연결할 수 있어요.
Kubernetes 오케스트레이션 네트워크의 프록시
Kubernetes 오케스트레이션 환경의 경우 Consul은 기본적으로 dataplane을 배포하여 사이드카 프록시를 관리해요. Consul dataplane은 기존 Kubernetes 사이드카 오케스트레이션 기능을 활용하는 경량 프로세스예요. 자세한 내용은 dataplanes 문서를 참고해 주세요.
가이드
서비스 메시 프록시 사용에 도움이 되는 다음 리소스를 참고해 주세요:
튜토리얼
- Consul 서비스 메시에서 Envoy 사용하기
사용 문서
- 서비스 메시 프록시 배포
- 사이드카 프록시 배포
- 사용자 지정 프록시 통합
참조 문서
- 자세한 내용은 proxy defaults 구성 엔트리 참조.
- Envoy 프록시 참조
- 서비스 메시 프록시 구성 참조
- consul connect envoy 명령