관리 메뉴

피터의 개발이야기

[kubernetes] 모니터링 방법 정리 본문

Kubernetes/Logging & Monitoring

[kubernetes] 모니터링 방법 정리

기록하는 백앤드개발자 2024. 1. 19. 19:50
반응형

[kubernetes] 쿠버네티스 목차

ㅁ 들어가며

 이번 글은 쿠버네티스 클러스터 환경의  모니터링 방법에 대해서 정리하였다 
쿠버네티스 모니터링을 아래의 그룹으로 나누어 정리하였다. 

 ㅇ System Info : 시스템 정보인 CPU와 Memory 사용량에 대한 모니터링

 ㅇ Cluster Events : kubernetes cluster에서 변화가 생기면 Event가 생성된다. 이를 Event를 확인하는 방법과 EKS에 순단 장애 발생 대처하는 과정

 ㅇ 모니터링 UI : 쿠버네티스 대시보드, Prometeus+ Grafana와 같은 UI 모니터링 환경

 ㅇ 서비스 모니터링 : 대량 트레픽 서비스를 운영하며 고가용성, 리소스 최적화를 통한 비용절감에 대한 글을 정리

 

 사실 이미 있던 글을 그룹화하여 전반적인 쿠버네티스 모니터링에 대해서 개괄적인 설명이라 이번 글은 목차의 성격에 가깝다. 

 


System Info


 ㅇ kubenetes 환경의 꽃은 오케리트레이션에 있다.
 ㅇ 서버의 부하정도를 파악하여 Container를 증설 또는 감소하기 위해서는 서버상태정보(metric) 정보가 필수이다.

 ㅇ 노드와 Pod의 시스템 정보를 파악하고, 이를 위해 Metric-server를 설치하는 방법을 정리하였다.

 

 [kubernetes] node와 pod의 CPU, 메모리 확인 방법

 ㅇ kubernetes 환경에서 노드와 자원의 상태를 확인하기 위해 kubectl top 명령어를 자주 사용한다. 

 

 [kubernetes] 모든 Pod의 CPU, 메모리 Request, limit 조회

  Pod가 생성될 때에 Resource의 제한을 줄 수 있다. 
   ㄴ Request:  초기 Pod의 스케줄링 시 필요한 Cpu, Memory 최소 요구사양 

   ㄴ Limit: 운영 상황에서 Resource에 제한 을 준다.

 위의 글은 Pod limit을 한분에 볼 수 있도록 정리한 글이다. 리소스 limit가 제한 되지 않은 경우 전체 시스템에 영향을 줄 수 있기 때문에 전체 리소스의 상황을 모니터링하기 위하여 조회방법을 정리하였다.

 

[Kubernetes] metrics-server 설치과정

 ㅇ 쿠버네티스 모니터링을 위한 Metrics 서버 설치 과정이다.

 ㅇ Node과 Pod의 CPU, Memory 사용량을 모니터링 할 수 있다.

 ㅇ [kubernetes] Metrics Server 설치, Metrics API not available 에러 해결 과정에서 설치과정을 다시 정리함

    ㄴ kubernetes 환경에서 노드와 자원의 상태를 확인하기 위해 kubectl top 명령어를 자주 사용한다.
    ㄴ 신규 EKS를 설치하고 TOP 명령어가 작동하지 않아 그 원인을 찾고 해결하는 과정을 정리하였다.

[minikube] minikube에서 meteric server 실행하기

 ㅇ metric server의 미설치 확인 방법과 minikube환경에서 metric server를 실행하는 방법을 정리하였습니다.

 


Cluster Events 확인


이벤트 확인은 EKS에 순단 장애를 겪으면서 많이 공부하게 된 부분이다. Events를 잘 보는 법, 그리고  EKS에 순단 장애 발생 대처하는 과정을 정리하였다. 이를 통해 모니터링의 목적인 장애를 어떻게 대응할 지에 대해서 고민한 흔적을 볼 수 있다.

 

ㅁ [kubernetes] Events 보는 방법

 ㅇ 이벤트 확인 시 필터 적용방법 

 ㅇ [kubernetes] Events 시간 단위로 소팅
   ㄴ 이벤트 확인 시 시간 정렬이 되어 있지 않아서 시간 순서로 정렬하는 방법을 정리하였다.

 

EKS에 순단 장애 발생 대처

 EKS에 순단이 발생하여 원인 파악을 위해 이벤트를 보는 방법([kubernetes] Events 보는 방법)을 정리하였다. AWS에 장애 상황에 대해 문의를 하였고, EKS fail-over 상황이 발생한 것을 확인 할 수 있었다. EKS 장애를 통해 장애 인지 및 모니터링을 위한 개선점을 도출하여, 그 과정을 정리하였다.

 

  1편 [kubernetes] EKS fail-over 상황정리 및 방어방법
  2편 [Kubernetes] 쿠버네티스API 서버 CURL 접속 방법
  3편 [Kubernetes] Spring에서 쿠버네티스 Pod 정보조회
  4편 [kubernetes] kubernetes event exporter

 


모니터링 UI 


 CLI는 명령어 기반이라 표현되는 정보가 제한적일 수밖에 없다. 그리서 웹으로 볼 수 있는 모니터링 환경에 대해 정리하였다. 

 

[minikube] Kubernetes 대시보드

 ㅇ minikube 환경에서 대시보드를 실행하는 방법이다.

ㅁ [minikube] minikube dashboard 활성화 방법

 ㅇ minikube 환경에서 대시보드를 활성화 하는 방법 정리

 

[kubernetes] Prometheus Monitoring 환경 구축하기

 ㅇ 쿠버네티스로 Prometheus Monitoring 환경 구축과정을 정리하였다.

 ㅇ Prometheus는 클러스터의 시스템 정보를 시간단위로 데이터베이스화하고, Grafana는 Prometheus에 데이터를 조회 하여 시각화 해준다.

 

[kubernetes] LENS 설치 및 minikube 클러스터 연동

 ㅇ kubernetes의 IDE라고 표현할 정도로 클러스터의 모니터링과 관리를 도와주는 LENS라는 프로그램의 설치 및 클러스터 연결과정을 정리하였다. 

 ㅇ 치명적인 문제점은 유료라는 것이다. 그래서 7일동안 사용해본 후기 형태의 글이다.

 

[kubernetes] OpenLens 설치 및 minikube 연동, OpenLens 노드/포드 메뉴 확장

ㅇ LENS의 무료버젼이다.

ㅇ 일부 기능이 제한되어서 별도의 확장 플로그인 설치 과정이 필요하다.

ㅇ OpenLens를 설치하고 minikube와 연동한 후, 확장 플로그인 설치과정을 정리하였다. 

 

 

 


서비스 모니터링 


 실질적인 서비스를 운영하는 입장에서 어떻게 클러스터 환경을 모니터링 할지에 대한 글이다. 대량 트래픽을 소화하면서도 서버유지 비용을 최소화하기 위해 어떻게 모니터링 하였는지, 그 과정에 대해 정리한 글들이다.


ㅁ [kubernetes] Pod 로그 확인

 ㅇ Pod의 애플리케이션의 로그를 분석하는 방법을 정리하였다.
 ㅇ 가장 기본이 되는 Pod의 로그 분석  방법이다. 

 

[DevOps 모니터링] 서비스 퍼포먼스를 위한 응답 시간 체크 방법

AWS 대상그룹의 대상 응답시간 지표와  Whatap을 이용한 트래픽 지연 분석

 
ㅇ 대량 트레픽 서비스에서 퍼포먼스 향상을 위해서는 트레픽의 응답 시간 체크가 필수적이다.
 ㅇ 응답이 지연되는 프로세스를 체크하고 퍼포먼스를 향상함으로써 제한된 리소스에서 서비스의 TPS를 높여 고가용성을 얻을 수 있다.
 ㅇ 고가용성을 높인가는 것은 적은 리소스로 더 많은 요청을 처리하게 되면서 AWS 비용절감과 시스템 병목장애를 예방할 수 있다.
 ㅇ 그러므로 트레픽 응답 지연 모니터링은 DevOps의 필수적인 요소이다.

 ㅇ 위의 글은 쿠버네티스 환경에서 서비스 모니터링을 위해 AWS 대상그룹의 대상 응답시간 지표Whatap을 이용한 트래픽 지연 분석  방법과 Spring TraceFilter를 이용한 트래픽 소요시간을 EFK에서 확인하는 방법에 대해서 정리하였다.

 

[Kubernetes] Kubernetes Pod별 Tcpdump 방법

 ㅇ 외부 연동된 사이트와의 통신에서 천만분의 1의 경우로 network timeout이 발생하여, kubernetes cluster 운영환경에서 pod에서 발생한 IP packet에 대한 tcpdump를 방법을 정리하였다.

 

반응형
Comments