$ minikube start --driver=docker --cpus='4' --memory='4g'
# helm 레포 추가
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# helm repo update
$ helm repo update
# 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
포트 포워딩
새로운 터미널을 열어 포트포워딩
$ kubectl port-forward svc/prom-stack-grafana 9000:80
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로 생성되어 있음
expression이 PromQL을 기반으로 정의되어 있음.
해당 AlertRule이 발생하면 어디로 어떤 message를 보낼 것인지 정의 가능
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
Prometheus가 default로 등록되어 있음.
Dashboards - Manage 탭 클릭
Kubernetes/Compute Resources/NameSpace(Pods)
TimeRange 조절 가능
Panel별 PromQL 구성 확인 가능
우측 상단의 Add Panel
우측 상단의 save dashboard