최근 많은 국내외 기업들이 IT 솔루션을 개편하면서 속속히 쿠버네티스를 도입하고 있어 눈길을 끌고 있습니다. 시장조사 기관인 가트너에 따르면 쿠버네티스로 대표되는 전 세계 컨테이너 관리 솔루션 시장은 2024년 약 1조 2,257억 원 규모에 이를 것으로 전망하고 있는데요. 이처럼 빠르게 시장이 커지고 있는 쿠버네티스는 최근 수년간 국내에도 빠르게 퍼지고 있습니다. 주요 은행, 증권, 보험과 같은 금융사들은 물론이고 게임, 유통 등 업계를 가릴 것 없이, 대부분의 기업들이 컨테이너와 쿠버네티스 기반의 IT 환경으로 변화하고 있습니다.
하지만 인력이 부족한 중소기업이나 데브옵스로 구성된 스타트업에서는 쿠버네티스를 도입하고 운영을 위한 모니터링을 할 때 무엇부터 할지 가끔 어려움을 겪기도 합니다. 그래서 쿠버네티스 운영 초보를 위해 어떤 지표들을 확인하면 좋을지, 컨테이너가 OOM killed 가 발생하는 주요 원인과 해결 방법을 소개하겠습니다.
#1. 주제픽. 쿠버네티스 운영 입문을 위한 주요 지표
쿠버네티스는 클러스터 전체를 관리하는 컨트롤 플레인과 컨테이너가 배포되는 가상 머신, 물리 머신인 노드(Node)로 구성됩니다.
쿠버네티스에 상의 컨테이너들은 파드(Pod)라는 단위로 배포 및 관리됩니다. Pod는 하나 이상의 컨테이너로 이루어져 있으며, 같은 Pod 내의 컨테이너들은 서로 로컬 통신이 가능하고 디스크 자원을 공유할 수 있습니다.
쿠버네티스 운영할 때 모니터링 영역은 크게 클러스터 영역과 쿠버네티스에서 실행 중인 애플리케이션 영역으로 나눌 수 있습니다. 오늘은 쿠버네티스 모니터링은 첫걸음이라고 할 수 있는 클러스터 영역에서는 어떤 지표를 확인해야 하는지 소개해 보겠습니다.
Pod, 노드 및 주요 컴포넌트와 같은 클러스터 구성 요소의 상태 전반적인 쿠버네티스 클러스터 상태를 모니터링해야 합니다. 즉 노드, Pod를 포함한 클러스터의 주요 구성 요소들이 문제없이 잘 동작하고 있는지 확인해야 합니다.
노드의 자원 사용량 Pod는 노드 상에서 실행됩니다. 그런데 Pod들이 필요로 하는 리소스에 비해 노드의 가용한 리소스가 적다면 적시에 Pod 스케줄링이 이루어지지 않습니다. 따라서 항상 노드 리소스가 부족하지 않은지 확인할 수 있어야 합니다. 다만 사용 가능한 리소스가 무조건 많다고 좋은 것은 아닙니다. 과도한 리소스는 불필요한 비용 지출로 이루어지기 때문에 항상 리소스를 효율적으로 사용할 수 있도록 관리하는 것이 중요합니다.
전체 Pod 수 대비 현재 Active한 Pod 수 Pod, ReplicaSet, Deployment 등이 정의에 따라 잘 동작하고 있는지 확인해야 합니다. 만약 의도한 대로 동작하고 있지 않다면 과부하, 신규 기능의 오류 등의 원인을 신속하게 파악해야 합니다.
쿠버네티스 Pod 모니터링 Pod 모니터링은 Pod의 리소스 사용률과 애플리케이션 메트릭, Pod의 복제 또는 자동 크기 조정과 같이 개별 Pod에 영향을 미치는 문제까지 크게 세 가지를 모니터링할 수 있습니다.
쉽게 설명하려고 하긴 했는데 여전히 어렵고 잘 모르겠다면, 쿠버네티스 전문가들이 미리 선정해 놓은 지표와 대시보드로 가볍게 시작해 보는 것도 좋은 방법입니다. 쿠버네티스 도입과 운영이 어려웠다면 쿠버네티스 전문가와 운영 모니터링을 함께해 보세요.
쿠버네티스 클러스터 내에서 일부 컨테이너에 할당된 메모리의 한계를 넘어 시스템이 해당 컨테이너를 강제로 종료시키는 상황이 생기는데요. 이때 컨테이너 OOM Killed 이벤트가 발생합니다.
이는 컨테이너에서 사용하는 메모리가 할당량 대비 지나치게 많거나 충분하지 않은 메모리 제한을 두었을 때 발생할 수 있습니다. 쿠버네티스는 컨테이너에서 OOM Killed 이벤트가 감지되면 같은 업무를 수행하는 Pod를 빠르게 재배포하여 기존 컨테이너의 서비스가 중단되지 않도록 합니다.
OOM Killed가 발생하는 주요 원인으로 아래 3가지를 뽑을 수 있는데요.
컨테이너 할당 메모리가 부족한 경우
컨테이너에 메모리 제한을 두지 않은 경우
메모리 누수 (Memory leak)가 있는 경우
주요 원인에 따라 확인해야 하는 지표와 해결 방법은 다릅니다. 궁금한가요? 해결 방법은 아래 블로그에서 알려드리겠습니다. 😁
세 번째 고객 사례픽으로는 우리나라 대표 유통 기업인 롯데쇼핑의 롯데온 서비스 운영 사례를 소개하려고 합니다. 롯데온 서비스 AWS 클라우드 내에서 EKS, MSA 구조로, 아키텍처가 매우 복잡하게 구성되어 있는데요. 운영담당자 입장에서 복잡한 아키텍처 구조와 함께 쿠버네티스 또한 모니터링해야 하는데, 구축 당시에는 쿠버네티스 모니터링 서비스가 많지 않았기도 했고, MSA로 나누어진 영역을 어떻게 실무자에게 신속하게 전달할지 큰 고민이었다고 합니다.
롯데온 서비스 운영 담당자는 어떻게 문제를 해결했는지 궁금하다면 아래 사례를 읽어보세요. 비슷한 고민을 하고 있는 분들께 도움되실 거예요!
2023년 8월 1일 ~ 10월 31일까지 와탭 모니터링 신규 가입 후 쿠버네티스 모니터링 프로젝트를 신규 생성하시면 트라이얼 기간을 90일로 연장해 드리고 있습니다. 15일 체험 기간이 너무 짧다고 느꼈을 분들~ 이제 여유롭게 와탭 쿠버네티스 모니터링 서비스와 함께 쿠버네티스 모니터링을 시작해 보세요. 쿠버네티스 도입이나 운영 시작을 어떻게 해야 할지 모른다면 언제든 와탭에 문의하세요.