티스토리 뷰

Monitoring

node, pod 등 다양한 상태를 모니터링 해야한다. 하지만 쿠버네티스에서는 이러한 모든 데이터를 모니터링할 수 있는 내장 모니터링 솔루션을 완벽하게 제공하지 않는다.

그렇기 때문에 오픈 소스 솔루션을 사용하는데 Metrics-Server, Prometheus, Elastic Stack이나 소유권이 있는 Datadog 혹은 Dynatrace 같은 솔루션을 사용하여 모니터링한다.

여기서는 Metric-Server를 사용하여 모니터링하는 방법을 간략하게 배워보자.

Metric-Server

쿠버네티스 클러스터당 하나의 메트릭 서버를 가질 수 있다. 메트릭 서버는 각각의 node와 pod로부터 모니터링 데이터를 검색한 뒤 그것을 종합하여 메모리에 저장한다.

기억해야 할 것은 메트릭 서버는 메모리 모니터링 솔루션일 뿐이라는 것. 메모리 외에 다양한 데이터를 모니터링 하기 위해서는 다른 솔루션을 도입해야한다.

어떻게 생성될까?

바로 각 노드마다 위치하고 있는 kubelet을 통해 생성된다.

Getting Started

  • minikube 사용시
minikube addons enable metrics-server
  • 그 외
git clone <metrics-server git 주소>
kubectl create -f <clone file>

Command

kubectl top <node><pod>  # 사용량 많은 순서대로

Logging

docker container의 logging과 비슷하다.

# event-simulator.yaml
apiVersion: v1
kind: Pod
metadata:
  name: event-simulator-pod
spec:
  containers:
  - name: event-simulator
  - image: kodekloud/event-simulator
kubectl create -f event-simulator.yaml
kubectl logs -f event-simulator.yaml

이렇게 하면 특정 pod에 대한 log를 확인할 수 있다.

그런데 쿠버네티스는 다중 컨테이너 시스템인데 하나의 pod로만 로깅을 할 수 있을까? 위의 yaml file에 컨테이너를 하나 더 추가해보자.

# event-simulator.yaml
apiVersion: v1
kind: Pod
metadata:
  name: event-simulator-pod
spec:
  containers:
  - name: event-simulator
    image: kodekloud/event-simulator
  - name: image-processor
    image: some-image-processor

그리고 같은 방식으로

kubectl logs -f event-simulator-pod

을 해도 아무런 로그를 확인할 수 없다.

다중 컨테이너에서는 로그를 확인할 pod 중 어떤 컨테이너의 log를 확인할 것인지 한번 더 명시해주어야 한다.

kubectl logs -f event-simulator-pod event-simulator

'Infrastructure > Kubernetes' 카테고리의 다른 글

[CKA] Security  (0) 2022.08.03
[CKA] Cluster Maintenance  (0) 2022.07.30
[CKA] Application Lifecycle Management  (0) 2022.07.28
[CKA] Scheduling  (0) 2022.07.27
[CKA] Kubernetes Core Concepts  (0) 2022.07.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함