Operating Kubernetes at scale: a few stories from running Amazon EKS

Operating Kubernetes at scale: a few stories from running Amazon EKS

수십만 클러스터를 운영한다는 것의 의미

Amazon EKS는 현재 30개 이상의 AWS 리전에서 수십만 개의 Kubernetes 클러스터를 운영하고 있다. 단순히 클러스터 수가 많다는 것이 아니라, 그 규모에서는 일반적인 운영 방식이 통하지 않는 상황이 빈번하게 발생한다는 점이 핵심이다. 개별 클러스터 수준에서는 무시할 수 있는 엣지 케이스가, 수십만 단위로 확장되면 매일 반복되는 장애 패턴이 된다. 이것이 대규모 Kubernetes 운영이 일반 운영과 근본적으로 다른 이유다.

백엔드 개발자 입장에서도 이 문제는 남의 이야기가 아니다. 서비스가 성장하면서 Kubernetes 클러스터 수가 늘어나고, 멀티 리전 배포 전략을 채택하게 되면 결국 유사한 운영 복잡도를 마주하게 된다. EKS 팀이 이 규모에서 어떤 문제를 풀었는지를 이해하는 것은 곧 자신의 인프라가 어떤 방향으로 진화할 수 있는지를 미리 파악하는 일이다.

컨트롤 플레인과 etcd 운영의 핵심 과제

Kubernetes 클러스터 운영에서 가장 중요한 컴포넌트 중 하나는 etcd다. etcd는 클러스터의 모든 상태 정보를 저장하는 분산 키-값 스토어로, 컨트롤 플레인의 신뢰성과 직결된다. 클러스터가 소수일 때는 etcd 튜닝이 선택 사항처럼 느껴지지만, 수백 개 이상의 클러스터를 동시에 운영하면 etcd의 성능 한계와 데이터 압축 전략, 스냅샷 관리가 실질적인 운영 병목으로 부상한다.

대규모 환경에서 흔히 마주치는 etcd 관련 문제는 다음과 같다.

  • 디스크 I/O 포화: etcd는 쓰기 지연에 민감하며, 디스크 성능이 떨어지면 리더 선출이 불안정해진다.
  • 데이터 압축 미흡: 오래된 리비전이 누적되면 etcd 메모리 사용량이 급증하고, 결국 OOM으로 이어진다.
  • 스냅샷 복구 시간: 클러스터 수가 많을수록 장애 시 스냅샷에서 복구하는 절차의 자동화와 속도가 중요해진다.
# etcd 데이터 압축 및 defrag 예시
etcdctl compact $(etcdctl endpoint status --write-out="json" | jq '.[0].Status.header.revision')
etcdctl defrag --endpoints=https://127.0.0.1:2379

이처럼 etcd 운영은 단순 설치 이후의 유지보수 전략이 더 중요하며, 자동화된 압축 주기와 모니터링 알림 설정이 필수다.

컨트롤 플레인 확장 전략과 운영 자동화

컨트롤 플레인은 API 서버, 스케줄러, 컨트롤러 매니저로 구성되며, 이들 각각이 트래픽 급증 시 병목이 될 수 있다. 특히 API 서버의 요청 버스트는 대규모 노드 재시작이나 배포 롤아웃 시 짧은 시간 안에 수천 건의 Watch/List 요청을 유발한다. EKS 규모에서는 이를 클러스터별로 독립적으로 처리하도록 격리하는 설계가 필수적이다.

운영 자동화 측면에서는 다음 원칙이 실무에서 유효하다.

  • 클러스터 라이프사이클 자동화: 생성, 업그레이드, 삭제 파이프라인을 코드로 관리해야 휴먼 에러를 줄일 수 있다.
  • 관찰 가능성 표준화: 수십 개 이상의 클러스터를 운영할 때는 메트릭 수집과 대시보드를 표준 템플릿으로 구성해야 한다.
  • 장애 격리 설계: 한 클러스터의 이상이 다른 클러스터로 전파되지 않도록 네트워크와 리소스 경계를 명확히 정의해야 한다.
# PodDisruptionBudget으로 컨트롤 플레인 컴포넌트 가용성 보장 예시
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: kube-apiserver-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      component: kube-apiserver

정리

  • 수십만 클러스터 운영에서 발생하는 엣지 케이스는 규모가 커질수록 일상적인 장애가 되므로, 자동화와 표준화가 핵심 대응 전략이다.
  • etcd의 안정적 운영을 위해 주기적인 데이터 압축, defrag, 모니터링 알림 설정은 선택이 아닌 필수다.
  • 컨트롤 플레인 확장은 단순한 리소스 증설이 아니라 격리 설계, 관찰 가능성 표준화, 라이프사이클 자동화를 포함한 종합적인 전략으로 접근해야 한다.
Source
The New Stack
원문 보기 →
← 목록으로 돌아가기