페이지

2026년 4월 1일 수요일

쿠버네티스(Kubernetes, K8s)

 

1. 클라우드 네이티브의 운영체제, 쿠버네티스의 개요

**쿠버네티스(Kubernetes)**는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈소스 기반의 컨테이너 오케스트레이션(Container Orchestration) 플랫폼입니다. 구글의 'Borg' 시스템에서 유래되었으며, 현재는 CNCF(Cloud Native Computing Foundation)의 대표 프로젝트로서 멀티 클라우드 및 하이브리드 클라우드 환경의 표준 인프라로 자리 잡았습니다.


2. 가. 쿠버네티스의 개념 및 특징

1) 개념

  • 선언적 API(Declarative API): 사용자가 원하는 상태(Desired State)를 정의하면, 쿠버네티스가 현재 상태(Current State)를 점검하고 이를 일치시키기 위해 지속적으로 동작하는 시스템입니다.

  • 컨테이너 추상화: 하드웨어 리소스를 논리적으로 분리하여 컨테이너 단위로 관리함으로써 인프라 독립성을 제공합니다.

2) 주요 특징

특징상세 설명
자동화된 복구 (Self-healing)컨테이너 장애 시 자동으로 재시작하고, 응답 없는 컨테이너를 교체하여 서비스 가용성을 유지합니다.
수평 확장 (Auto-scaling)부하량에 따라 컨테이너 수를 자동으로 늘리거나(Scale-out) 줄여(Scale-in) 리소스를 최적화합니다.
서비스 디스커버리 & 로드밸런싱DNS 이름을 사용하여 컨테이너를 노출하고, 트래픽이 많을 경우 네트워크 부하를 분산합니다.
자동화된 롤아웃 & 롤백애플리케이션 업데이트 시 순차적으로 배포(Rolling Update)하며, 문제 발생 시 즉시 이전 버전으로 되돌립니다.
스토리지 오케스트레이션로컬 저장소, 공용 클라우드 공급자 등 다양한 스토리지 시스템을 자동으로 마운트합니다.

3. 나. 쿠버네티스의 주요 컴포넌트

쿠버네티스는 크게 **제어 평면(Control Plane)**과 노드(Node) 영역으로 구성됩니다.

1) 제어 평면 (Control Plane / Master Node)

  • kube-apiserver: 쿠버네티스 API를 노출하는 프런트엔드로, 모든 컴포넌트 간 통신의 중심 역할을 수행합니다.

  • etcd: 클러스터의 모든 데이터를 담는 고가용성 키-값(Key-Value) 저장소입니다. (상태 데이터 보관)

  • kube-scheduler: 새로운 Pod를 감지하여 리소스 여유가 있는 최적의 노드에 배치합니다.

  • kube-controller-manager: 클러스터의 상태를 모니터링하고 원하는 상태를 유지하는 다양한 컨트롤러(Node, Job 등)를 실행합니다.

2) 노드 컴포넌트 (Worker Node)

  • kubelet: 각 노드에서 실행되는 에이전트로, Pod 안의 컨테이너들이 정상적으로 실행되는지 관리합니다.

  • kube-proxy: 각 노드에서 실행되는 네트워크 프록시로, 서비스 추상화를 구현하고 네트워크 규칙을 관리합니다.

  • Container Runtime: 컨테이너 실행을 실질적으로 담당하는 소프트웨어입니다. (예: Docker, containerd, CRI-O)


4. 다. HPA (Horizontal Pod Autoscaler)

1) HPA의 개념

HPA는 CPU 이용률이나 사용자 정의 메트릭(Custom Metrics)을 관찰하여, Pod의 개수(Replicas)를 동적으로 조절하는 수평 확장 자동화 기능입니다.

2) 동작 원리 (Control Loop)

  1. 메트릭 수집: Metrics Server로부터 대상 Pod들의 리소스 사용량을 주기적으로 수집합니다.

  2. 비율 계산: 설정된 목표 값과 현재 메트릭 값을 비교하여 필요한 복제본 수를 계산합니다.

  3. 상태 갱신: 계산된 결과에 따라 Deployment 등의 Replicas 값을 변경하여 Pod를 생성하거나 제거합니다.

3) 복제본 수 계산 공식

HPA는 다음과 같은 수식을 사용하여 목표 복제본 수를 결정합니다.

$$DesiredReplicas = \lceil CurrentReplicas \times \frac{CurrentMetricValue}{TargetMetricValue} \rceil$$

5. 결론 및 향후 전망

쿠버네티스는 단순한 컨테이너 관리를 넘어 **플랫폼 구축을 위한 플랫폼(Platform for Platforms)**으로 진화하고 있습니다. 최근에는 인프라 운영의 자동화를 극대화하는 GitOps(ArgoCD 등) 기술과 결합하거나, AI 모델 학습 및 서빙을 위한 Kubeflow 등 특정 도메인 최적화 솔루션의 기반이 되고 있습니다.

기술사는 복잡해지는 쿠버네티스 생태계에서 보안(Security)과 관측성(Observability)을 확보하고, 비즈니스 요구사항에 맞는 최적의 오케스트레이션 전략을 수립할 수 있어야 합니다.

댓글 없음: