Kubernetes
Kubernetes 는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼입니다. 구글이 개발하고 CNCF(Cloud Native Computing Foundation)에서 관리하며, 클러스터 환경에서 컨테이너 애플리케이션을 효율적으로 운영할 수 있도록 설계되었습니다.
주요 특징
- 컨테이너 오케스트레이션: 여러 컨테이너를 클러스터로 묶어 효율적으로 배포하고 관리.
- 셀프 힐링(Self-Healing):장애가 발생한 컨테이너를 자동으로 재시작하거나 교체하며, 정상 상태를 유지.
- 자동 확장(Auto Scaling): 워크로드에 따라 컨테이너의 수를 동적으로 증가 또는 감소.
- 서비스 디스커버리 및 로드 밸런싱: 컨테이너 간 네트워크 통신을 지원하며, 트래픽을 분산 처리.
- 데클러러티브 구성: YAML 또는 JSON 파일로 인프라와 애플리케이션의 상태를 정의.
- 롤아웃 및 롤백 관리: 새로운 버전의 애플리케이션을 점진적으로 배포하며, 문제가 발생하면 이전 버전으로 롤백.
장점
- 확장성: 수천 개의 컨테이너를 효율적으로 관리할 수 있는 뛰어난 확장성 제공.
- 유연성: 다양한 클라우드 환경(AWS, Azure, Google Cloud) 및 온프레미스에서 운영 가능.
- 효율성: 리소스를 최적화하여 컨테이너를 할당하고, 하드웨어 활용도를 높임.
- 자동화: 배포, 확장, 복구 등의 작업을 자동화하여 관리 부담 감소.
- 오픈소스 생태계: CNCF와 커뮤니티의 활발한 지원으로 다양한 확장 기능 및 도구와 통합 가능.
관련 용어
- 컨테이너(Container): 애플리케이션과 그 종속성을 포함하는 경량화된 가상 환경.
- Docker: 컨테이너 이미지를 생성하고 관리하는 데 사용되는 도구.
- Helm: 쿠버네티스 애플리케이션 배포를 간소화하는 패키지 관리자.
- Service Mesh: 서비스 간 통신을 관리하기 위한 기술 (예: Istio).
- 클러스터(Cluster): 여러 노드(Node)로 구성된 쿠버네티스 인프라의 기본 단위.
주요 솔루션 및 사용 사례
- 도구: Rancher, OpenShift, Google Kubernetes Engine(GKE), Azure Kubernetes Service(AKS), Amazon Elastic Kubernetes Service(EKS).
- 사용 사례: 글로벌 서비스 확장, 마이크로서비스 기반 애플리케이션 운영, DevOps 워크플로우 구현.