일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 깃허브 액션
- jenkins
- EKS 클러스터
- SAA 합격 후기
- terraform
- 로드밸런서 컨트롤러
- 딥레이서
- Solution Architecture
- 딥레이서 보상함수
- helm
- Aurora cluster
- grafana on kubernetes
- 쿠버네티스 컴포넌트
- livenessPorbe
- blue-green
- 메탈LB
- headless service
- LoadBalancer Controller
- Firelens
- kubernetes 동작 원리
- github action 사용법
- 그라파나 대시보드
- Prometheus install
- 그라파나 시각화
- 솔데스크
- Kubernets on Jenkins
- AWS 딥레이서
- 쿠버네티스
- Kubernetes
- EFS CSI Driver
mingming
grafana on kubernetes 본문
grafana
이전 글에서도 소개해드렸지만 grafana는 그라파나 랩스에서 개발한 특정 소프트웨어에 종속되지 않는 독립적인 시각화 도구 입니다. 오픈소스로 다양한 data source의 시각화를 지원해줍니다.
사전 준비사항
1. nfs server
prometheus-server 가 pvc를 통해 pv를 사용할 수 있도록 nfs server를 구성한 후 pv를 생성해 줍니다.
2. helm install
helm을 통해 설치하기 때문에 helm 명령어가 설치되어 있어야 합니다.
3. metal lb
prometheus-server를 외부에서 접근 가능하도록 LoadBalancer type으로 노출 시키기 위해 metallb가 설치되어 있어야 합니다. | svc port forwarding 혹은 Nodeport 로 노출시켜도 됩니다.
prometheus를 data source로 지정해 해당 메트릭값을 시각화 합니다. 따라서 prometheus가 설치되어 있어야 합니다.
helm repo add
grafana 에서 제공하는 helm chart를 이용합니다.
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
values.yaml
grafana helm chart의 values.yaml 파일을 가져옵니다.
helm show grafana/grafana > grafana-values.yaml
Valuefile Definition
vim grafana-values.yaml
325 persistence:
326 type: pvc
327 enabled: true ## 기본설정 false
328 # storageClassName: default
329 accessModes:
330 - ReadWriteOnce
331 size: 10Gi
332 # annotations: {}
333 finalizers:
334 - kubernetes.io/pvc-protection
------------------------------- 중략 -------------------------------
354 initChownData:
355 ## If false, data ownership will not be reset at startup
356 ## This allows the grafana-server to be run with an arbitrary user
357 ##
358 enabled: false # init container 디렉터리 소유권 재설정 off
PV 생성
공유 디렉터리 생성 및 권한 부여
mkdir /nfs_shared/grafana
chmod 777 /nfs_shared/grafana
systemctl restart nfs-server
vim grafana-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: grafana-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 192.168.45.240
path: /nfs_shared/grafana
kubectl apply -f grafana-pv.yaml
grafana install
수정한 values.yaml 파일을 이용해 grafana를 설치합니다, prometheus 와 같은 네임스페이스에 배포합니다.
helm install grafana grafana/grafana -f grafana-values.yaml --namespace monitoring
kubectl get all -n monitoring
grafana Service Expose
grafana의 svc를 LoadBalancer type으로 변경해 외부에서 접속가능하도록 수정합니다.
kubectl patch svc grafana -p '{"spec":{"type":"LoadBalancer"}}'
kubectl patch svc grafana -p '{"spec":{"type":"NodePort"}}'
할당받은 metallb 주소로 접근가능한지 확인합니다.
Id : admin
password : 아래의 명령을 통해 password를 확인 합니다.
kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
'kubernetes' 카테고리의 다른 글
grafana를 이용한 prometheus 메트릭 값 시각화 및 모니터링 (0) | 2023.09.24 |
---|---|
ephemeral-storage (0) | 2023.09.21 |
promehteus 메트릭 수집 (0) | 2023.09.18 |
Prometheus on kubernetes (0) | 2023.09.18 |
Kubernetes Monitoring 시스템 ( Prometheus & Grafana ) (0) | 2023.09.17 |