그라파나

Kubernetes에 Grafana 배포

구일칠구 2022. 8. 12. 19:30

Kubernetes에 Grafana 배포

이 페이지에서는 Kubernetes(K8S)에서 Grafana를 설치하고 실행하는 방법을 설명합니다. 설정에 Kubernetes 매니페스트를 사용합니다. Helm을 선호하는 경우 Grafana Helm 커뮤니티 차트 를 참조하십시오 .

Grafana Enterprise(Grafana OS 아님)에 관심이 있는 경우 Kubernetes에 Grafana Enterprise 배포 섹션으로 이동하십시오.

Grafana Kubernetes 매니페스트 만들기

  1. 라는 파일 grafana.yaml을 만든 다음 아래 내용을 붙여넣습니다.
---
  apiVersion: v1
  kind: PersistentVolumeClaim
  metadata:
  name: grafana-pvc
  spec:
  accessModes:
  - ReadWriteOnce
  resources:
  requests:
  storage: 1Gi
  ---
  apiVersion: apps/v1
  kind: Deployment
  metadata:
  labels:
  app: grafana
  name: grafana
  spec:
  selector:
  matchLabels:
  app: grafana
  template:
  metadata:
  labels:
  app: grafana
  spec:
  securityContext:
  fsGroup: 472
  supplementalGroups:
  - 0
  containers:
  - name: grafana
  image: grafana/grafana:8.4.4
  imagePullPolicy: IfNotPresent
  ports:
  - containerPort: 3000
  name: http-grafana
  protocol: TCP
  readinessProbe:
  failureThreshold: 3
  httpGet:
  path: /robots.txt
  port: 3000
  scheme: HTTP
  initialDelaySeconds: 10
  periodSeconds: 30
  successThreshold: 1
  timeoutSeconds: 2
  livenessProbe:
  failureThreshold: 3
  initialDelaySeconds: 30
  periodSeconds: 10
  successThreshold: 1
  tcpSocket:
  port: 3000
  timeoutSeconds: 1
  resources:
  requests:
  cpu: 250m
  memory: 750Mi
  volumeMounts:
  - mountPath: /var/lib/grafana
  name: grafana-pv
  volumes:
  - name: grafana-pv
  persistentVolumeClaim:
  claimName: grafana-pvc
  ---
  apiVersion: v1
  kind: Service
  metadata:
  name: grafana
  spec:
  ports:
  - port: 3000
  protocol: TCP
  targetPort: http-grafana
  selector:
  app: grafana
  sessionAffinity: None
  type: LoadBalancer
  

Kubernetes API 서버에 매니페스트 보내기

  1. 다음 명령을 실행합니다. kubectl apply -f grafana.yaml
  2. 다음을 실행하여 작동하는지 확인하십시오. kubectl port-forward service/grafana 3000:3000
  3. localhost:3000브라우저에서 로 이동 합니다. Grafana 로그인 페이지가 표시되어야 합니다.
  4. admin로그인할 때 사용자 이름과 비밀번호를 모두 사용 합니다.

Kubernetes에 Grafana Enterprise 배포

Grafana Enterprise 배포 프로세스는 라이선스 파일에 추가하는 데 필요한 몇 가지 추가 단계를 제외하고 위의 프로세스와 거의 동일합니다. 다음 섹션에서 설명합니다.

Grafana Enterprise 라이선스 받기

Grafana Enterprise를 실행하려면 유효한 라이선스가 필요합니다. 라이선스를 얻으려면 Grafana Labs 담당자 에게 문의하십시오. 이 항목에서는 이미 이 작업을 수행했고 license.jwt파일이 있다고 가정합니다. 라이선스는 나중에 주제에서 사용할 URL과도 연결되어야 합니다.

라이선스 비밀 생성

다음 명령을 사용하여 라이선스 파일에서 Kubernetes 비밀을 만듭니다.

kubectl create secret generic ge-license --from-file=/path/to/your/license.jwt
  

Grafana Enterprise 구성 생성

라는 이름으로 Grafana 구성 파일을 만듭니다 grafana.ini. 그런 다음 아래 내용을 붙여넣습니다.

참고:root_url 제공된 라이선스와 연결된 URL로 필드 를 업데이트해야 합니다.

[enterprise]
  license_path = /etc/grafana/license/license.jwt
  [server]
  root_url =/your/license/root/url
  
  

Grafana Enterprise Config용 Configmap 생성

grafana.ini다음 명령 을 사용 하여 파일에서 Kubernetes Configmap을 만듭니다 .

kubectl create configmap ge-config --from-file=/path/to/your/config.ini
  

Grafana Enterprise Kubernetes 매니페스트 생성

파일을 만든 grafana.yaml다음 아래 내용을 붙여넣습니다. 이 YAML은 Grafana 구성 파일이 있는 Configmap과 라이선스가 있는 Secret에 대한 추가 참조를 제외하고 Grafana OS 설치용과 동일합니다.

---
  apiVersion: v1
  kind: PersistentVolumeClaim
  metadata:
  name: grafana
  spec:
  accessModes:
  - ReadWriteOnce
  resources:
  requests:
  storage: 1Gi
  storageClassName: local-path
  ---
  apiVersion: apps/v1
  kind: Deployment
  metadata:
  labels:
  app: grafana
  name: grafana
  spec:
  selector:
  matchLabels:
  app: grafana
  template:
  metadata:
  labels:
  app: grafana
  spec:
  containers:
  - image: grafana/grafana-enterprise:latest
  imagePullPolicy: IfNotPresent
  name: grafana
  ports:
  - containerPort: 3000
  name: http-grafana
  protocol: TCP
  readinessProbe:
  failureThreshold: 3
  httpGet:
  path: /robots.txt
  port: 3000
  scheme: HTTP
  initialDelaySeconds: 10
  periodSeconds: 30
  successThreshold: 1
  timeoutSeconds: 2
  resources:
  limits:
  memory: 4Gi
  requests:
  cpu: 100m
  memory: 2Gi
  volumeMounts:
  - mountPath: /var/lib/grafana
  name: grafana
  - mountPath: /etc/grafana
  name: ge-config
  - mountPath: /etc/grafana/license
  name: ge-license
  volumes:
  - name: grafana
  persistentVolumeClaim:
  claimName: grafana
  - name: ge-config
  configMap:
  name: ge-config
  - name: ge-license
  secret:
  secretName: ge-license
  ---
  apiVersion: v1
  kind: Service
  metadata:
  name: grafana
  spec:
  ports:
  - port: 3000
  protocol: TCP
  targetPort: http-grafana
  selector:
  app: grafana
  sessionAffinity: None
  type: LoadBalancer
  
  1. Kubernetes API 서버에 매니페스트 보내기 kubectl apply -f grafana.yaml
  2. 다음을 실행하여 작동하는지 확인하십시오. kubectl port-forward service/grafana 3000:3000
  3. localhost:3000브라우저에서 로 이동 합니다. Grafana 로그인 페이지가 표시되어야 합니다.
  4. admin로그인할 때 사용자 이름과 비밀번호를 모두 사용 합니다. 작동했다면 Enterprise (Licensed)페이지 하단에 표시되어야 합니다.

'그라파나' 카테고리의 다른 글

그라파나 다시 시작  (0) 2022.08.13
그라파나 업그레이드  (0) 2022.08.13
Grafana Docker 이미지 실행  (0) 2022.08.12
macOS에 설치  (0) 2022.08.12
Windows에 설치  (0) 2022.08.12