[Cilium Study 1기 by Gasida] 2주차 - 도전과제3
[Cilium Study 1기 by Gasida] 2주차 - 도전과제3
Cilium Metrics 및 Hubble Metrics
Cilium Metrics
Cilium metrics은 Cilium 자체의 상태, 즉 Cilium Agent, Cilium envoy, Cilium operator 프로세스에 대한 인사이트를 제공한다
프로메테우스 메트릭이 활성화된 Cilium을 실행하려면 prometheus.enabled=true Helm 값 집합을 사용하여 Cilium을 배포
Hubble Metrics
- Cilium Metrics : Cilium 상태 자체를 모니터링
- Hubble Metrics : Cilium이 관리하는 쿠버네티스 파드의 네트워크 동작 연결 및 보안과 관련하여 모니터링
OpenMetrics
hubble.metrics.enableOpenMetrics=true
를 설정하여 OpenMetrics에 opt-in할 수 있다.
Cilium, Hubble, Cilium Operator의 메트릭 노출 설정
기본적으로 메트릭을 노출하지 않으므로 별도로 활성화 시켜주어야한다.
이러한 서비스에 대한 메트릭을 활성화하면 이러한 구성 요소가 실행 중인 클러스터의 모든 노드에 각각 9962, 9965, 9963 포트가 개방된다.
Cilium, Hubble, and Cilium Operator의 메트릭은 모두 다음 헬름 값으로 서로 독립적으로 활성화할 수 도있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
helm upgrade cilium cilium/cilium --namespace kube-system --reuse-values \
--set hubble.enabled=true \
--set hubble.relay.enabled=true \
--set hubble.ui.enabled=true \
--set hubble.ui.service.type=NodePort \
--set hubble.ui.service.nodePort=31234 \
--set hubble.export.static.enabled=true \
--set hubble.export.static.filePath=/var/run/cilium/hubble/events.log \
--set prometheus.enabled=true \ # Prometheus
--set operator.prometheus.enabled=true \ # Prometheus
--set hubble.metrics.enableOpenMetrics=true \ # Hubble Metrics
--set hubble.metrics.enabled="{dns,drop,tcp,flow,port-distribution,icmp,httpV2:exemplars=true;labelsContext=source_ip\,source_namespace\,source_workload\,destination_ip\,destination_namespace\,destination_workload\,traffic_direction}"
# 포트 확인
ss -tnlp | grep -E '9962|9963|9965'
프로메테우스 스택 설치하기
Prometheus를 기반으로 하며, 쿠버네티스 클러스터의 다양한 컴포넌트들의 메트릭 데이터를 수집하고 이를 시계열 데이터로 생성하여 모니터링 및 경고 기능을 제공
Prometheus Server
- 고가용성을 제공하는 프로메테우스 서버
- 메트릭 데이터를 스크랩하고 저장
AlertManager
- 프로메테우스가 수집한 데이터를 기반으로 경고 생성 및 관리
Prometheus node-exporter
- 호스트 메트릭을 수집하는 역할
- CPU, Memory, Disk Usage등 데이터를 수집하여 프로메테우스로 전달
kube-state-metrics
- 쿠버네티스 클러스터의 상태 정보의 metric을 수집
- 파드, 디플로이먼트, 노드 등의 상태 정보를 모니터링이 가능
prometheus-0 모니터링 대상이 되는 파드는 ‘exporter’라는 별도의 사이드카 형식의 파드에서 모니터링 메트릭을 노출, pull 방식으로 가져와 내부의 시계열 데이터베이스에 저장한다
1
2
3
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring --create-namespace
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。