[MLOps] Prometheus 실습

GisangLee·2023년 3월 25일
0

ML

목록 보기
138/141

1. Prometheus

minikube

$ minikube start --driver=docker --cpus='4' --memory='4g'

kube-prometheus-stack Helm Repo 추가

# helm 레포 추가
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

# helm repo update
$ helm repo update

kube-prometheus-stack 설치

# helm install [RELEASE_NAME] prometheus-community/kube-prometheus-stack

$ helm install prom-stack prometheus-community/kube-prometheus-stack
# 모든 values는 default로 생성됨
# https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml

# 정상 설치 확인
$ kubectl get pod -w
  • 실무에서는 admin password, storage class, resource, ingress 등의
    value를 수정한 뒤 적용하는 경우라면, charts를 clone한 뒤,
    values.yaml을 수정하여 git으로 환경별 히스토리 관리

사용법

  • 포트 포워딩

    새로운 터미널을 열어 포트포워딩

    • Grafana 서비스
      • $ kubectl port-forward svc/prom-stack-grafana 9000:80 
    • Prometheus 서비스
      • kubectl port-forward svc/prom-stack-kube-prometheus-prometheus 9091:9090
  • Prometheus UI Login

    • localhost:9091 로 접속

    • 다양한 PromQL 사용 가능 (Autocomplete 지원)

      kube_pod_container_status_running
      # running status인 pod 출력
      $ container_memory_usage_bytes
      # container 별 memory 사용 현황 출력

    • 다양한 AlertRule이 Default로 생성되어 있음

  • Grafana UI Login

$ kubectl get secret --namespace default prom-stack-grafana -o jsonpath="{.data.admin-user}" | base64 --decode ; echo

$ kubectl get secret --namespace default prom-stack-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
  • Grafana Configuration
    • Prometheus가 default로 등록되어 있음.

      • Prometheus와 통신하는 URL은 쿠버네티스 service의 DNS로 세팅
        • Grafana & Prometheus 모두 쿠버네티스 내부에서 통신
    • Dashboards - Manage 탭 클릭

      • Kubernetes/Compute Resources/NameSpace(Pods)

      • TimeRange 조절 가능

      • Panel별 PromQL 구성 확인 가능

      • 우측 상단의 Add Panel

        • Panel 추가 및 수정 가능
      • 우측 상단의 save dashboard

        • 생성 및 수정한 Dashboard를 영구히 저장하고 공유
          • Dashboard - Manage 탭
            • Upload JSON file
            • Import from grafana.com
profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글