infra

쿠버네티스 운영 설계 가이드: 장애를 줄이는 기본 습관 정리

mirabo01 2026. 2. 11. 09:54

쿠버네티스 운영을 덜 아프게 만드는 설계와 습관

앞선 글들에서
Pod 장애, OOMKilled, Evicted, Node 문제까지 살펴봤다.
이쯤 되면 자연스럽게 이런 생각이 든다.

  • “매번 터지고 나서 고치는 게 맞나?”
  • “처음부터 덜 아프게 운영할 수는 없을까?”

이 글에서는
쿠버네티스를 잘 쓰는 기술이 아니라
덜 고생하면서 운영하기 위한 설계와 습관을 정리한다.
화려한 패턴보다는, 실제로 도움이 되는 기본에 집중한다.


1. 모든 것은 “기본값에 맡기지 않는다”

쿠버네티스는 기본값이 많다.
문제는 이 기본값들이 운영 환경에 최적화되어 있지 않다는 점이다.

대표적인 예시는 다음과 같다.

  • resources 미설정
  • readiness/liveness probe 미설정
  • replicas = 1

처음에는 편하지만,
운영 단계로 가면 거의 항상 문제가 된다.

기본값은 “동작 확인용”이지 “운영용”은 아니다.


2. 리소스 설정은 선택이 아니라 전제다

이미 여러 번 강조했지만,
requests와 limits는 운영의 출발점이다.

최소한 지켜야 할 기준

  • 모든 Pod에 requests 설정
  • 메모리 limits는 반드시 설정
  • CPU limits는 상황에 따라 선택

[이미지: requests/limits 설정 여부에 따른 Pod 안정성 비교]

리소스를 설정해두면 좋은 점은 단순히 장애 방지가 아니다.

  • 스케줄링 예측 가능
  • 장애 원인 추적이 쉬워짐
  • HPA 기준이 명확해짐

실제로 써보면
“왜 이 Pod가 여기 배치됐지?” 같은 의문이 줄어든다.


3. 헬스 체크는 반드시 분리해서 생각한다

쿠버네티스에서 헬스 체크는 보통 두 가지다.

  • liveness probe
  • readiness probe

이 둘을 같은 개념으로 생각하면
의도치 않은 장애를 만들기 쉽다.

readiness probe

  • “지금 트래픽을 받아도 되는가”
  • 배포/재시작 시 매우 중요

liveness probe

  • “이 컨테이너는 정상 동작 중인가”
  • 실패하면 재시작이 발생

⚠️ readiness 없이 liveness만 설정하면
아직 준비 안 된 Pod로 트래픽이 들어갈 수 있다.


4. 로그와 모니터링은 처음부터 최소 세트라도

“나중에 붙이자”는 말은
운영에서는 거의 성립하지 않는다.

최소한 다음 정도는 초기에 갖추는 게 좋다.

로그

  • 모든 Pod 로그 중앙 수집
  • 서비스/환경 기준으로 필터 가능

모니터링

  • Node CPU / 메모리
  • Pod 재시작 횟수
  • OOMKilled, Evicted 이벤트

[이미지: 로그·모니터링 최소 구성 개념도]

완벽할 필요는 없다.
다만 아무것도 없는 상태는 가장 위험하다.


5. 장애를 전제로 한 구조를 만든다

쿠버네티스의 핵심 철학은 이것이다.

장애는 언젠가 반드시 발생한다.

그래서 다음 질문을 자주 던져야 한다.

  • Pod 하나가 죽어도 서비스는 유지되는가?
  • Node 하나가 사라져도 괜찮은가?
  • 설정 변경 시 롤백이 가능한가?

이를 위해 최소한 다음은 고려하는 게 좋다.

  • replicas 2 이상
  • 무중단 배포 전략 사용
  • 이전 버전으로 롤백 가능 구조

6. “한 번에 많이”보다 “조금씩 자주”

쿠버네티스 환경에서
대규모 변경은 리스크가 크다.

  • 리소스 한 번에 크게 조정
  • 설정 여러 개 동시에 변경
  • 이미지 + 설정 + 스케일링 동시 수정

이런 작업은
문제가 생겼을 때 원인 파악을 어렵게 만든다.

실무에서는 보통

  • 한 가지 변경
  • 영향 확인
  • 다음 변경

이 리듬이 가장 안전하다.


7. 트러블슈팅을 문서로 남긴다

의외로 효과가 큰 습관이다.

  • 어떤 증상이었는지
  • 원인이 무엇이었는지
  • 어떻게 해결했는지

이 기록은 다음에 꼭 다시 쓰인다.
특히 쿠버네티스는 비슷한 문제가 반복되는 경우가 많다.

운영 노하우는 검색보다
“내가 겪었던 기록”이 더 빠른 경우가 많다.


쿠버네티스 운영을 대하는 관점 정리

쿠버네티스를 쓰면서 가장 많이 느끼는 점은 이것이다.

  • 잘 쓰면 정말 편하다
  • 하지만 방심하면 복잡함이 바로 드러난다

그래서 운영에서는
새로운 기능보다 다음을 더 중요하게 본다.

  • 예측 가능성
  • 관측 가능성
  • 복구 가능성

정리하며

이번 글에서는
쿠버네티스를 덜 아프게 운영하기 위한 설계와 습관을 정리했다.

  • 기본값에 의존하지 않는다
  • 리소스와 헬스 체크는 필수다
  • 로그와 모니터링은 초기에 준비한다
  • 장애를 전제로 구조를 만든다

이 글까지를 기준으로 보면,
쿠버네티스의 기본 흐름과 운영 관점은 한 번 훑은 셈이다.

다음 글에서는
조금 방향을 바꿔서
로컬 개발 환경에서 쿠버네티스를 어떻게 연습하면 좋은지,
minikube, kind 같은 도구를 중심으로 정리해볼 예정이다.