일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- gitops
- kubernetes operator
- seldon core
- CANARY
- Pulumi
- gitea
- tekton
- keda
- argo rollout
- Litmus
- blue/green
- Kubernetes
- Model Serving
- 카오스 엔지니어링
- opensearch
- 오퍼레이터
- MLflow
- serving
- Argo
- argocd
- nginx ingress
- Kubeflow
- opentelemetry
- Continuous Deployment
- knative
- mlops
- operator
- Kubernetes 인증
- Kopf
- CI/CD
- Today
- Total
Kubernetes 이야기
Prometheus agent mode 본문
Prometheus 는 Kubernetes 환경에서 모니터링을 위한 사실상 표준 솔루션이다.
Prometheus의 아키텍처는 다음과 같다.
Prometheus는 기본적으로 Pull 방식의 모니터링 솔루션이다. 즉 모니터링 대상 App에서 Prometheus로 모니터링 수집 데이터를 Push 하는 것이 아닌 Prometheus에서 App에게 모니터링 수집 데이터를 요청하여 저장하는 방식이다.
이 Push 모드와 Pull 모드의 장단점이 있기 때문에 어느쪽이 더 아키텍처인지는 판단할 수 없다.
Prometheus의 주요 기능은 다음과 같다.
- 메트릭 이름 및 키/값 쌍으로 식별되는 시계열 데이터가 있는 다차원 데이터 모델
- 이 차원을 활용 하는 유연한 쿼리 언어 인 PromQL
- 분산 스토리지에 의존하지 않음 단일 서버 노드는 자율적
- 시계열 수집은 HTTP를 통한 풀 모델을 통해 발생
- 푸시 시계열 은 중개 게이트웨이를 통해 지원
- 대상은 서비스 검색 또는 정적 구성을 통해 검색
- 여러 모드의 그래프 및 대시보드 지원
Prometheus를 사용함으로써 얻는 효과는 다음과 같다.
- Prometheus는 메트릭 수집을 활성화하기 위해 서버 또는 컨테이너 이미지에 별도 Agent를 설치할 필요가 없다.
- Prometheus는 대상 응용 프로그램이 다운되면 Prometheus는 데이터를 검색할 수 없다고 기록할 수 있다.
- 메트릭을 가져올 수 없는 상황이 있는 경우 Prometheus는 필요한 경우 애플리케이션이 메트릭 데이터를 계속 푸시 할 수 있도록 하는 Pushgateway 를 제공합니다.
Prometheus HA
기본적으로 Prometheus에는 2개 이상의 Prometheus Instance를 실행하여 고가용성을 구성한다. Prometheus의 각 인스턴스는 서로 독립적으로 실행되지만 각각은 여전히 Prometheus Operator가 설정한 것과 동일한 구성을 갖는다. 기본적으로 아래와 같이 두 개의 대상 메트릭 복사본이 스크랩된다.
이와 다르게 하나의 Cluster가 아닌 멀티 클러스터에서 다양한 Prometheus 수집 데이터를 쿼리하려면 또 다른 개념이 필요하다.
Prometheus Clustering
Prometheus는 여러 Prometheus 인스턴스의 데이터를 집계하고 사용자에게 통합된 글로벌 뷰를 제공하는 세 가지 방법을 주로 사용한다.
- Federation : Prometheus에서 가장 먼저 내장된 데이터 집계 솔루션이다. 중앙 Prometheus 인스턴스를 사용하여 리프 Prometheus 인스턴스에서 메트릭을 캡처할 수 있다. (https://prometheus.io/docs/prometheus/latest/federation/)
- Remote read : 직접 PromQL 쿼리 없이 원격 Prometheus 서버의 데이터베이스에서 원시 메트릭을 선택할 수 있다.데이터를 읽은 후 집계하여 사용자에게 표시할 수 있다. 이 구현의 가장 많이 사용되고 있는 솔루션이 Thanos 이다. (https://github.com/thanos-io/thanos) 데이터에 대한 PromQL 쿼리를 수행하는 글로벌 보기 서비스로 작동하는 동시에 원격 위치에서 필요한 메트릭을 가져온다.
- Remote write : Prometheus를 메트릭에 수집하고 원격 스토리지에 쓰는 것을 지원할 수 있다. 사용자가 사 용할 때 원격 저장소에서 데이터를 직접 읽고 전역 보기 등을 제공한다.
Prometheus에서는 Agent Mode 를 v2.23.0 부터 제공한다. Remote write를 사용하여 원격 저장소에 Agent 모드가 활성화된 Prometheus 인스턴스의 데이터를 기록한다.
Agent Mode는 다음과 같이 몇가지 장점을 갖는다.
- 에이전트 모드는 Prometheus의 기본 제공 기능이다.
- 에이전트 모드가 활성화된 Prometheus 인스턴스는 리소스를 덜 소비하고 단일 기능을 가지므로 일부 Edge 환경의 확장에 더 유리하다.
- 에이전트 모드가 활성화되면 Prometheus 인스턴스는 거의 상태 비저장 응용 프로그램으로 간주될 수 있으므로 확장에 더 편리하다.
참조
'Kubernetes > 모니터링' 카테고리의 다른 글
OpenCost (0) | 2022.11.26 |
---|---|
Prometheus를 사용하여 Jenkins 모니터링 (0) | 2022.09.08 |
Cilium - Hubble UI를 이용한 애플리케이션 시각화 (0) | 2022.05.19 |
kind + cilium + hubble 구성하기 ( without kube-proxy ) (0) | 2022.05.16 |
Goldilocks로 VPA 모니터링 하기 (0) | 2022.05.15 |