쿠버네티스 아키텍처
쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 운영할 수 있도록 지원하는 오픈소스 오케스트레이션 플랫폼입니다. 그 아키텍처는 클러스터 기반 구조로, 제어(컨트롤 플레인)와 실행(노드) 역할을 분리하여 대규모 서비스를 안정적으로 운영할 수 있게 설계되어 있습니다. 마이크로서비스, CI/CD, 멀티 클라우드 환경 등에서 현대적인 애플리케이션 인프라의 핵심으로 활용됩니다.
주요 특징
- 분산형 제어 구조: 마스터와 워커 노드 간 역할 분리 및 상호 통신 기반 설계.
- API 중심 제어: 모든 리소스는 Kubernetes API 서버를 통해 관리됨.
- 디클레러티브 방식: 사용자가 원하는 상태(state)를 선언하면 시스템이 자동으로 이를 유지.
- 컨트롤 루프 기반 운영: 지속적으로 현재 상태를 확인하고 원하는 상태로 조정.
- 확장 가능한 모듈 구조: 네트워크, 스토리지, 보안 등 다양한 구성요소가 유기적으로 연결됨.
장점
- 자동화된 운영: 배포, 복구, 확장, 롤백 등이 자동으로 수행됨.
- 무중단 서비스 제공: 롤링 업데이트, 헬스 체크 등으로 안정적인 서비스 유지.
- 유연한 워크로드 관리: 다양한 형태의 애플리케이션을 통합적으로 운영 가능.
- 인프라 추상화: 클라우드, 온프레미스, 가상화 환경 모두에서 동일한 방식으로 운영.
- 에코시스템 연계성: Helm, Istio, Argo CD 등 다양한 오픈소스 툴과 연동 가능.
관련 용어
- 컨트롤 플레인(Control Plane): 클러스터 전체를 제어하는 중앙 구성요소 (API Server, Scheduler, Controller Manager 등).
- 노드(Node): 컨테이너를 실행하는 물리 또는 가상 서버. 워커 노드라고도 불림.
- 파드(Pod): 쿠버네티스에서 배포되는 최소 실행 단위. 하나 이상의 컨테이너로 구성됨.
- 디플로이먼트(Deployment): 파드를 선언형으로 배포하고 상태를 유지하는 리소스.
- 서비스(Service): 파드 간 또는 외부와의 통신을 안정적으로 보장하는 네트워크 객체
주요 솔루션 및 사용 사례
- 주요 솔루션
- GKE (Google Kubernetes Engine): Google Cloud의 완전관리형 Kubernetes 플랫폼.
- Amazon EKS: AWS에서 제공하는 Kubernetes 기반 컨테이너 오케스트레이션 서비스.
- Azure AKS: Microsoft Azure의 관리형 Kubernetes 서비스.
- Rancher: 멀티 클러스터 Kubernetes 환경을 관리하는 플랫폼.
- OpenShift: Red Hat에서 개발한 엔터프라이즈 Kubernetes 플랫폼.
- 사용 사례
- 마이크로서비스 운영: 수백 개의 독립 서비스(컨테이너)를 하나의 클러스터에서 관리.
- 자동 확장 서비스: CPU 사용률에 따라 파드를 자동으로 증가/감소.
- 무중단 배포 환경 구축: 롤링 업데이트로 사용자는 중단 없이 새로운 버전을 사용.
- 하이브리드 인프라 통합: 온프레미스와 퍼블릭 클라우드 자원을 동시에 클러스터화.
- CI/CD 파이프라인 연결: 코드 변경 후 자동으로 배포되도록 시스템 구성.