12. 쿠버네티스 모니터링


1. 쿠버네티스 모니터링

  • 이번 장에서는 모니터링을 위해 Dashboard, Prometheus+Grafana 를 직접 설치하여 실습해 봅니다.

1.1 Kubernetes Dashboard

  • 대시보드는 웹기반으로 쿠버네티스를 모니터링하고 관리 할 수 있습니다

 

(1) 대시보드 yaml 파일을 다운로드 받습니다.

  • 다운로드 받은 파일에서 서비스 타입을 NodePort나 LoadBalancer로 수정합니다.

12/00-dashboard-install.txt

curl -LO https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

 

(2) 수정된 yaml 파일을 적용하여 대시보드를 생성합니다.

# kubectl apply -f recommended.yaml namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created

 

(3) 로그인 시 필요한 토큰을 생성하여 접속합니다.

12/01-dashboard-user.yaml

--- apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard

 

(4) 브라우저를 통해 대시보드에 접속합니다.

Screenshot_20210712_142109.png

 

1.2 Prometheus와 Grafana

  • 프로메테우스와 그라파나는 모니터링에 특화된 솔루션입니다.

  • 실제 운영 환경 모니터링은 그라파나를 가장 많이 사용합니다.

  • 프로메테우스로 매트릭을 수집하여 저장하고 그라파나에서 필요한 데이터를 불러와 대시보드 형식으로 표현 합니다.

  • 쿠버네티스와 노드의 매트릭 수집을 위해 kube-state-metric과 nodeexporter를 사용합니다.

  • 프로메테우스 매트릭은 클러스터 규모가 커질수록 수집 대상 데이터도 많아지고 매트릭정보도 많아지므로 트래픽과 스토리지를 잘 설계해야 합니다.

 

prometheus.png

(1) Prometheus&Grafana 설치

12/02-monitoring-install.txt

 

 

(2) Grafana, Prometheus 의 서비스 유형을 LoadBalancer로 변경하여 접속합니다.

 

(3) LoadBalancer IP 확인 하여 브라우저에서 3000번 포트로 grafana 접속합니다.

  • admin / admin 입력하여 접속

 

(4) 13770 ID 입력하여 Dashboard Import https://grafana.com/grafana/dashboards/13770-1-kubernetes-all-in-one-cluster-monitoring-kr/
Datasource는 Prometheus로 설정

 

(5) 대시보드 화면 확인

 

(6) LoadBalancer IP 확인 하여 브라우저에서 9090번 포트로 Prometheus 접속합니다.

 

Status → Target

 

참고) https://grafana.com/grafana/dashboards/

Related content

11. 쿠버네티스 자동화 프로비저닝_change
11. 쿠버네티스 자동화 프로비저닝_change
Read with this
8. 쿠버네티스 리소스 관리 및 볼륨
8. 쿠버네티스 리소스 관리 및 볼륨
Read with this
13-1 Helm을 이용한 복잡한 APP 배포
13-1 Helm을 이용한 복잡한 APP 배포
Read with this