이 글은 아래의 글들에 의존성을 가진다.
2023.08.17 - [Backend MLOps/On-premise setting] - [k8s] kubeadm 을 이용해서 싱글노드 쿠버네티스 환경 구축 - 1
2023.08.23 - [Backend MLOps/On-premise setting] - [k8s] kubeadm 을 이용해서 싱글노드 쿠버네티스 환경 구축 - 2
2023.08.24 - [블로그 글] - [k8s] kubeadm 을 이용해서 싱글노드 쿠버네티스 환경 구축 - 3
이제는 그라파나를 설치해 보도록 하자.
오늘 회사에서 웃긴 일화가 있었는데
그라파나의 어원에 대해서 불현듯 찾아보다가
북유럽신화가 나오다가
유희왕 카드에 용 이름이 그라파 였다가
북유럽 신화 용이름이 아닐까 하다가
그라파나 로고도 묘하게 용처럼 보이다가
결국은 아무 의미 없다는 제작자의 인터뷰를 발견했다.
각설하고 설치해 보자.
이때까지 싱글노드 쿠버네티스를 구성하고
거기에 클러스터를 구성하고
거기에 볼륨을 붙이고
거기에 파드들을 볼륨과 함께 띄워 보았다.
띄워진 파드들은
시스템 정보를 모아서 응답으로 보내주는 백엔드 서버 node exporter
익스포터에 주기적으로 요청을 보내서 정보를 모아 저장하는 능동적(pulling) 시계열 데이터베이스인 프로메테우스
가 있다.
이제 프로메테우스에 쿼리를 날려서 내용을 시각화해주는 그라파나를 띄워보자.
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-datasources
namespace: monitoring
data:
prometheus.yaml: |-
{
"apiVersion": 1,
"datasources": [
{
"access":"proxy",
"editable": true,
"name": "prometheus",
"orgId": 1,
"type": "prometheus",
"url": "http://prometheus-service.monitoring.svc:9090",
"version": 1
}
]
}
그라파나의 컨피그맵으로 데이터 소스를 프로메테우스로 지정하는 yaml이다.
각 오브젝트의 특성은 이전 글에 간략히 설명되어 있다.
apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: monitoring
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '3000'
spec:
selector:
app: grafana
type: NodePort
ports:
- port: 3000
targetPort: 3000
nodePort: 32000
그라파나에 접속할 수 있게 서비스 리소스를 할당하는 구문이다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
namespace: monitoring
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
name: grafana
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:latest
ports:
- name: grafana
containerPort: 3000
resources:
limits:
memory: "1Gi"
cpu: "1000m"
requests:
memory: 500M
cpu: "500m"
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-storage
- mountPath: /etc/grafana/provisioning/datasources
name: grafana-datasources
readOnly: false
volumes:
- name: grafana-storage
persistentVolumeClaim:
claimName: grafana-pvc
- name: grafana-datasources
configMap:
defaultMode: 420
name: grafana-datasources
실재로 그라파나가 떠서 동작할 파드에 관한 디플로이먼트다.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: grafana-pvc
namespace: monitoring
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: my-hostpath-pv
그라파나를 위한 pvc다
이전 글에서 작성했던 pv 와의 연동이 설정되어 있으므로 이전 글을 반드시 참고하기 바란다.
잘 떴다.
초기 아이디 와 비밀번호는 모두 admin이다.
오른쪽 위에 더하기를 눌러서 대시보드를 추가할 수 있다.
남들이 만들어서 올려둔 데시보드도 땡겨 쓰는게 가능하다.
데시보드의 일정 값이 초과되면 알람을 보내는 것 또한 가능하다.
'Backend MLOps > On-premise setting' 카테고리의 다른 글
[k8s] 라즈베리파이 클러스터링 -2 (0) | 2023.08.28 |
---|---|
[k8s] 라즈베리파이 클러스터링 -1 (2) | 2023.08.27 |
[k8s] kubeadm 을 이용해서 싱글노드 쿠버네티스 환경 구축 - 3 (0) | 2023.08.24 |
[k8s] kubeadm 을 이용해서 싱글노드 쿠버네티스 환경 구축 - 2 (2) | 2023.08.23 |
[k8s] kubeadm 을 이용해서 싱글노드 쿠버네티스 환경 구축 - 1 (0) | 2023.08.17 |
댓글