=================
== The Archive ==
=================

[그림과 실습으로 배우는 쿠버네티스 입문] 11장. 옵저버빌리티와 모니터링 다루기

|

cover.jpg

11.1 관측 가능성에 대해 알아보자

11.1.1 정보 수집하기: 로그

11.1.2 측정값 처리하기: 메트릭스 (Metrics)

11.1.3 통신 추적하기: 트레이스

(시간 ->)

│<------------------ 서비스 A가 처리 완료까지 걸린 시간 ------------------>│
│==================================================================│
│                             Trace                                │
│==================================================================│

            +-------------+
            |    Span     |   <- 서비스 B 호출
            +-------------+

                              +----------------------+
                              |         Span         |   <- 데이터베이스 쓰기 작업
                              +----------------------+

11.2 모니터링에 대해 알아보기

11.2.1 정보를 시각화하기: 대시보드

11.2.2 이상 경보: 알림

11.3 [만들기] 모니터링 시스템 구축하기

11.3.1 Prometheus/Grafana 설치하기

1
2
3
4
5
6
7
8
9
~
❯ k get pod --namespace monitoring                                      
NAME                                                       READY   STATUS    RESTARTS       AGE
alertmanager-kube-prometheus-stack-alertmanager-0          2/2     Running   2 (165m ago)   3d2h
kube-prometheus-stack-grafana-54549784dc-l4pxp             3/3     Running   3 (165m ago)   3d2h
kube-prometheus-stack-kube-state-metrics-59b9d4c6b-r926q   1/1     Running   2 (165m ago)   3d2h
kube-prometheus-stack-operator-6c477dc56-zffbp             1/1     Running   1 (165m ago)   3d2h
kube-prometheus-stack-prometheus-node-exporter-gdqtj       1/1     Running   1 (165m ago)   3d2h
prometheus-kube-prometheus-stack-prometheus-0              2/2     Running   2 (165m ago)   3d2h

11.3.2 메트릭스 수집 애플리케이션 실행하기

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
~/gitFolders/build-breaking-fixing-kubernetes master* ⇡
❯ k apply --filename chapter-11/namespace.yaml                        
namespace/develop created

~/gitFolders/build-breaking-fixing-kubernetes master* ⇡
❯ k apply --filename chapter-11/hello-server.yaml 
deployment.apps/hello-server created
service/hello-server created

~/gitFolders/build-breaking-fixing-kubernetes master* ⇡
❯ k get pod --namespace develop
NAME                          READY   STATUS    RESTARTS   AGE
hello-server-c698974d-8rwk5   1/1     Running   0          35s
hello-server-c698974d-mg4rp   1/1     Running   0          35s
hello-server-c698974d-npqwk   1/1     Running   0          35s

11.3.3 메트릭스 수집을 위한 설정

1
2
3
4
5
6
7
8
prometheus:
  prometheusSpec:
    additionalScrapeConfigs:
      - job_name: hello-server
        scrape_interval: 10s
        static_configs:
          - targets:
              - hello-server.develop.svc.cluster.local:8080
 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
~/gitFolders/build-breaking-fixing-kubernetes master* ⇡
❯ helm upgrade kube-prometheus-stack -f kube-prometheus-stack/values.yaml prometheus-community/kube-prometheus-stack --namespace monitoring
Release "kube-prometheus-stack" has been upgraded. Happy Helming!
NAME: kube-prometheus-stack
LAST DEPLOYED: Wed Dec 31 04:05:21 2025
NAMESPACE: monitoring
STATUS: deployed
REVISION: 2
DESCRIPTION: Upgrade complete
NOTES:
kube-prometheus-stack has been installed. Check its status by running:
  kubectl --namespace monitoring get pods -l "release=kube-prometheus-stack"

Get Grafana 'admin' user password by running:

  kubectl --namespace monitoring get secrets kube-prometheus-stack-grafana -o jsonpath="{.data.admin-password}" | base64 -d ; echo

Access Grafana local instance:

  export POD_NAME=$(kubectl --namespace monitoring get pod -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=kube-prometheus-stack" -oname)
  kubectl --namespace monitoring port-forward $POD_NAME 3000

Get your grafana admin user password by running:

  kubectl get secret --namespace monitoring -l app.kubernetes.io/component=admin-secret -o jsonpath="{.items[0].data.admin-password}" | base64 --decode ; echo

Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.

11.3.4 Prometheus에 접속하기

1
2
3
4
~/gitFolders/build-breaking-fixing-kubernetes master* ⇡ 11s
❯ k port-forward service/kube-prometheus-stack-prometheus --namespace monitoring 9090:9090
Forwarding from 127.0.0.1:9090 -> 9090
Forwarding from [::1]:9090 -> 9090

00.png

01.png

02.png

03.png

04.png

11.3.5 Grafana에 접속하기

1
2
3
4
~/gitFolders/build-breaking-fixing-kubernetes master* ⇡ 4m 13s
❯ k port-forward service/kube-prometheus-stack-grafana --namespace monitoring 8080:80     
Forwarding from 127.0.0.1:8080 -> 3000
Forwarding from [::1]:8080 -> 3000

05.png

06.png

07.png

08.png

09.png

10.png

Categories:

Tags: