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)
메트릭 수집:
Metrics Server로부터 대상 Pod들의 리소스 사용량을 주기적으로 수집합니다.비율 계산: 설정된 목표 값과 현재 메트릭 값을 비교하여 필요한 복제본 수를 계산합니다.
상태 갱신: 계산된 결과에 따라 Deployment 등의
Replicas값을 변경하여 Pod를 생성하거나 제거합니다.
3) 복제본 수 계산 공식
HPA는 다음과 같은 수식을 사용하여 목표 복제본 수를 결정합니다.
5. 결론 및 향후 전망
쿠버네티스는 단순한 컨테이너 관리를 넘어 **플랫폼 구축을 위한 플랫폼(Platform for Platforms)**으로 진화하고 있습니다. 최근에는 인프라 운영의 자동화를 극대화하는 GitOps(ArgoCD 등) 기술과 결합하거나, AI 모델 학습 및 서빙을 위한 Kubeflow 등 특정 도메인 최적화 솔루션의 기반이 되고 있습니다.
기술사는 복잡해지는 쿠버네티스 생태계에서 보안(Security)과 관측성(Observability)을 확보하고, 비즈니스 요구사항에 맞는 최적의 오케스트레이션 전략을 수립할 수 있어야 합니다.
댓글 없음:
댓글 쓰기