본문 바로가기

분류 전체보기

(220)
[Tempo]What is Grafana Tempo? Architecture Grafana Tempo는 Distributor, Ingester, Query Frontend, Querier, Compactor, Metrics Generator(option)를 포함합니다. 각 컴포넌트는 트레이스 수집, 처리, 조회, 그리고 메트릭스 생성 등의 역할을 담당하며, 이들은 전체 trace 데이터의 라이프사이클을 관리합니다. Distributor Distributor는 Jaeger, OpenTelemetry, Zipkin을 포함한 여러 형식의 스팬을 허용합니다. traceID를 해싱하고 분산되고 일관된 해시 링을 사용하여 스팬을 Ingester로 라우팅합니다. 최상의 성능을 위해 OTel Proto를 수집하는 것이 권장됩니다. 스팬(span): 시작 시간과 종료 시간..
[Mimir]What is Grafana Mimir? Concept Grafana Mimir는 Prometheus에 대한 확장 가능한 롱텀 스토리지를 제공하는 오픈 소스 프로젝트로, 탁월한 확장성, 쉬운 설치 및 관리, 비용 효율적인 스토리지 솔루션을 특징으로 합니다. 핵심 강점 Easy to install and maintain Grafana Mimir는 모놀리식 모드에서 단일 바이너리로 실행됩니다. 이는 복잡한 종속성이나 추가 설정 없이 솔루션을 간편하게 시작할 수 있다는 것을 의미합니다. 또 Kubernetes 환경에서는 Helm 차트를 통해 손쉽게 배포할 수 있으며, 이는 클라우드 환경에서의 빠른 설치와 효율적인 관리를 가능하게 합니다. Massive scalability 일반적인 프로메테우스의 scale-out이 불가능한 단점을 보완하여 horiz..
[Istio]Traffic Management - 무슨 일이 발생하는 건가?(envoy xDS Sync 이해하기) Concept envoy xDS Sync는 Envoy 프록시가 동적으로 구성을 업데이트하고, 서비스 메시에서의 트래픽 관리를 최적화하는 과정을 의미한다. 여기서 xDS는 eXtensible Discovery Service의 약자로, Envoy 프록시와 구성 관리 시스템 간의 통신을 위한 일련의 프로토콜을 나타낸다. Envoy 프록시는 서비스 메시를 구성하는 요소로 마이크로서비스 간의 통신을 중개하고, 로드밸런싱, timeout, circuit breaker와 같은 기능을 제공한다. 이러한 기능을 수행하기 위해 Envoy 프록시는 자신의 구성 정보를 최신 상태로 유지해야한다. 여기서 xDS Sync는 다음과 같은 일련의 xDS 프로토콜을 통해 Envoy 프록시의 동적 구성을 가능하게 한다. LDS (Lis..
[Istio]Traffic Management - Request Routing(동적 요청 라우팅 구성하기) Concept 이 작업에서는 여러 버전의 마이크로서비스에 대한 동적 요청 라우팅을 구성하는 방법을 보여 준다. reviews 마이크로서비스에는 세 가지 버전이 있으며, 동시에 실행 중이다. 이 중 도서 리뷰에 별점이 포함된 경우(v2,v3)와 포함되지 않은 경우(v1)가 번갈아가며 나타나고 있다. Istio는 명시적으로 라우팅할 기본 서비스 버전이 없기 때문에 가능한 모든 버전에 대한 요청을 라운드 로빈 방식으로 라우팅한다. 이 작업의 목표는 모든 트래픽을 마이크로서비스의 v1로 라우팅하는 규칙을 적용하는 것이다. AS-IS: v1, v2, v3이 RR 방식으로 라우팅 productpage를 통해 접속하면 아래와 같이 리뷰 부분이 v1,v2,v3으로 돌아가며 나온다. TO-BE: reviews-v1 서비..
[Istio]Traffic Management - Overview Concept Istio의 트래픽 라우팅 규칙을 사용하면 서비스 간의 트래픽 및 API 호출 흐름을 쉽게 제어할 수 있다. Istio는 circuit breakers, timeouts, retries같은 서비스 수준의 구성을 간소화하며, A/B 테스트, 카나리 배포 및 퍼센트 기반 트래픽 분할과 같은 작업을 쉽게 설정할 수 있다. Istio의 트래픽 관리 모델은 서비스와 함께 배포되는 Envoy 프록시에 의존한다. 메시 서비스가 보내고 받는 모든 트래픽(data plane traffic)은 Envoy를 통해 프록시된다. 이를 통해 서비스를 변경하지 않고 메시 내에서 트래픽을 직접 제어하고 관리할 수 있다. 서비스 메쉬 성숙도 모델 아래 그림의 화살표 순으로 고도화된 서비스 메쉬를 완성해갈 수 있다. Ku..
[Istio]Deploy bookinfo sample application to demonstrate various Istio features 💡Environment Client Version: v1.24.0 Kustomize Version: v4.5.4 Server Version: v1.24.12-eks-ec5523e Namespace: bookinfo으로 변경 후 진행 Deploy sample application # inject envoy proxy kubectl label namespace bookinfo istio-injection=enabled # apply bookinfo application kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -n bookinfo # veryfy deploy ➜ kubectl exec "$(kubectl get pod -l app=rati..
[Istio]Install Istio with istioctl Download istio version 1.17 아래에서 kubernetes 와 호환 버전 확인하고 설치를 진행한다 https://istio.io/latest/docs/releases/supported-releases/#support-status-of-istio-releases 💡Environment Client Version: v1.24.0 Kustomize Version: v4.5.4 Server Version: v1.24.12-eks-ec5523e # download curl -L https://istio.io/downloadIstio | > ISTIO_VERSION=1.17 sh - # symbolic link cd istio-1.17.2 ln -s istio-1.17.2 istio # path..
[Istio]What is Istio? Istio란 무엇인가? Istio는 여러 서비스들을 서로 연결하고, 보호하며, 모니터링하는 기능을 제공하는 오픈소스 도구입니다. 간단하게 말하면, 여러 서비스들 사이에서 통신하는 방식을 효과적으로 관리해주는 도구입니다. Istio는 어떻게 동작하나요? Istio는 크게 두 가지 주요 부분으로 구성됩니다. 데이터 평면(Data Plane): 서비스들 간의 통신을 관리하는 부분입니다. 'Envoy'라는 특별한 프록시가 이 부분에서 활동하며, 이 Envoy는 서비스들 사이에서 데이터를 전송하는 도로와 같은 역할을 합니다. 또한, 이 데이터를 기록하고 분석해주기도 합니다. 제어 평면(Control Plane): Envoy 프록시를 제어하는 부분입니다. 어떤 서비스로 데이터를 보낼지, 어떻게 데이터를 보낼지 등을..