서비스 메시 L7 관측성
서비스 메시 L7 관측성 (Service Mesh L7 Observability)
이 문서는 서비스 메시의 L7 관측성 기능을 활용하기 위해 필요한 구성들을 설명해요. 사이드카 프록시 배포, 메트릭 전송 대상, 프로토콜·업스트림 정의 방법을 다룰게요.
출처: 문서
본문
서비스 메시의 L7 관측성 기능을 활용하려면 다음이 필요합니다:
- 각 서비스와 함께 메트릭을 방출할 수 있는 사이드카 프록시를 배포합니다. Envoy를 일급(first class) 지원합니다.
- 프록시가 수집한 메트릭을 보낼 위치를 정의합니다.
- 각 서비스의 프로토콜을 정의합니다.
- 각 서비스의 업스트림을 정의합니다.
Envoy를 사이드카 프록시로 사용한다면 클라이언트 에이전트에서 gRPC를 활성화해야 합니다. 메트릭 대상과 서비스 프로토콜을 정의하려면 구성 항목과 중앙 집중식 서비스 구성을 활성화하고 싶을 수 있습니다.
Kubernetes
Kubernetes를 사용한다면 Helm 차트가 관측성 활성화에 필요한 많은 구성을 단순화할 수 있습니다. 자세한 내용은 Kubernetes 관측성 문서를 참조하세요.
메트릭 전송 대상 (Metrics destination)
Envoy의 경우 메트릭 전송 대상은 프록시 구성 항목의 config 섹션에서 구성할 수 있습니다.
kind = "proxy-defaults"
name = "global"
config {
"envoy_dogstatsd_url": "udp://127.0.0.1:9125"
}
다른 가능한 메트릭 sink는 Envoy 문서에서 찾을 수 있습니다.
서비스 프로토콜 (Service protocol)
service-defaults 구성 항목에서 모든 서비스 인스턴스에 대해 protocol을 지정할 수 있습니다. 또한 서비스 정의 파일에서 프록시를 정의·등록할 때 기본 프로토콜을 재정의할 수도 있습니다. 추가 정보는 Expose Paths 구성 참조를 참조하세요.
기본적으로 프록시는 L4 메트릭만 제공합니다. 프로토콜을 정의하면 프록시가 요청을 L7 프로토콜로 처리하고 L7 메트릭을 방출할 수 있습니다. 또한 프록시가 요청별 로드 밸런싱·라우팅 결정을 내릴 수 있게 해 줍니다.
서비스 업스트림 (Service upstreams)
서비스의 sidecar 등록에서 정의할 수 있는 프록시의 upstreams 사이드카 매개변수를 사용해 각 서비스에 대한 업스트림을 설정할 수 있습니다.