Envoy 확장 개요

Envoy 확장 개요 (Envoy extensions overview)

이 주제에서는 Consul 서비스 메시 배포에서 Envoy 확장에 대한 개요를 제공해요. Consul 코드베이스를 수정하지 않고 Consul이 생성한 Envoy 리소스를 수정하여 추가 기능을 추가할 수 있어요.

출처: 문서

본문

이 주제에서는 Consul 서비스 메시 배포에서 Envoy 확장에 대한 개요를 제공합니다. Consul 코드베이스를 수정하지 않고 Consul이 생성한 Envoy 리소스를 수정하여 추가 기능을 추가할 수 있습니다.

소개 (Introduction)

Consul은 Envoy 동작을 수정하는 두 가지 방법을 지원합니다. escape hatches를 통해 Consul이 생성하는 Envoy 리소스를 수정하거나 EnvoyExtension 매개변수를 사용하여 서비스가 Envoy 확장을 사용하도록 구성할 수 있습니다. Escape hatches를 구현하려면 Consul과 호환되도록 Envoy 리소스를 다시 작성해야 하며, 이 작업은 Consul이 Envoy 리소스의 이름을 지정하고 의도를 시행하는 방법을 이해해야 하는 작업입니다.

Consul 코드를 수정하는 대신 EnvoyExtensions 필드를 통해 서비스가 Envoy 확장을 사용하도록 구성할 수 있습니다. 이 필드는 proxy-defaults 및 service-defaults 구성 항목에서 정의할 수 있습니다.

지원되는 확장 (Supported extensions)

Envoy 확장은 사이드카 프록시의 동작 방식을 변경하여 Consul에서 추가 서비스 메시 기능을 활성화합니다. 확장은 Consul 구성 항목을 기반으로 Envoy 프록시의 구성을 동적으로 수정하여, Envoy 프록시를 통과하는 서비스 메시 트래픽에 대한 더 넓은 사용 사례 집합을 가능하게 합니다. Consul은 다음 확장을 지원합니다:

  • 외부 인가 (External authorization)
  • 외부 처리 (External processing)
  • 장애 주입 (Fault injection)
  • Lua
  • Lambda
  • OpenTelemetry 액세스 로깅
  • 속성 재정의 (Property override)
  • WebAssembly (Wasm)

외부 인가 (External authorization)

ext-authz 확장을 사용하면 Envoy 프록시에 대한 외부 인가 필터를 구성하여 요청을 외부 인가 시스템으로 라우팅할 수 있습니다. 자세한 내용은 external authorization 문서를 참조하세요.

외부 처리 (External processing)

ext-proc 확장을 사용하면 Envoy 프록시에 대한 외부 처리 필터를 구성하여 검사 및 변형을 위해 요청과 응답을 외부 서비스로 보낼 수 있습니다. 자세한 내용은 external processing 문서를 참조하세요.

장애 주입 (Fault injection)

fault-injection 확장을 사용하면 업스트림 서비스의 응답을 변경하여 사용자가 예기치 않은 다양한 문제에 대한 시스템의 복원력을 테스트할 수 있습니다. 자세한 내용은 fault injection 문서를 참조하세요.

Lambda

lambda Envoy 확장을 사용하면 서비스가 AWS Lambda 함수에 마치 Consul 카탈로그의 정상적인 부분인 것처럼 메시를 통해 요청할 수 있습니다. 자세한 내용은 Lambda 확장 문서를 참조하세요.

Lua

lua Envoy 확장은 Consul Envoy 프록시에서 HTTP Lua 필터를 활성화합니다. Consul이 생성한 Envoy 리소스의 요청 및 응답 중에 Lua 스크립트를 실행할 수 있습니다. 자세한 내용은 Lua 확장 문서를 참조하세요.

OpenTelemetry 액세스 로깅 (OpenTelemetry Access Logging)

otel-access-logging Envoy 확장을 사용하면 Envoy 프록시가 OpenTelemetry 수집기 서비스로 액세스 로그를 보내도록 구성할 수 있습니다. 자세한 내용은 OpenTelemetry Access Logging 확장 문서를 참조하세요.

속성 재정의 (Property override)

property-override 확장을 사용하면 Consul이 생성하는 Envoy 리소스에서 개별 속성을 설정하고 해제할 수 있습니다. 고급 Envoy 구성을 활성화하려면 escape-hatch overrides 대신 이 확장을 사용하세요. 자세한 내용은 property override 문서를 참조하세요.

WebAssembly

wasm 확장을 사용하면 사용자 지정 WebAssembly(Wasm) 플러그인을 호출하는 TCP 및 HTTP 필터를 구성할 수 있습니다. 자세한 내용은 WebAssembly 확장 문서를 참조하세요.

더 알아보기 (Learn more)