쿠버네티스란 무엇인가?
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 소프트웨어 개발자 및 DevOps 엔지니어
- 중급 이상의 기술 이해도 필요 (컨테이너 오케스트레이션 개념 기초 이해 필수)
- 실무에서 컨테이너 기반 애플리케이션 운영/확장이 필요한 분야
핵심 요약
- 자동화된 컨테이너 운영 플랫폼으로 배포, 확장, 로드 밸런싱, 자동 복구 기능 제공
- ConfigMaps 및 Secrets를 통해 기밀 정보와 설정 관리
- 다중 클라우드/온프레미스 환경에서 컨테이너 클러스터 관리 가능
섹션별 세부 요약
1. Kubernetes의 주요 기능
- 다중 컨테이너 신뢰성 운영 (예: 5개 API 인스턴스의 고가용성)
- 자동 복구 기능 (컨테이너 충돌 시 자동 재시작)
- 트래픽 기반 자동 확장 (사용자 증가 시 Pod 추가, 감소 시 축소)
- 로드 밸런싱 (컨테이너 간 트래픽 균형 분배)
- 롤링 업데이트 (zero downtime 배포)
2. Docker vs Kubernetes 비교
- 목적
- Docker: 단일 앱 컨테이너 실행
- Kubernetes: 다중 머신에 여러 컨테이너 운영
- 확장성
- Docker: 수동 관리
- Kubernetes: 자동 확장, 복구, 로드 밸런싱
- 사용 예시
- Docker:
docker run myapp
- Kubernetes:
kubectl apply -f deployment.yaml
3. 실무 적용 사례
- 200개 기업 사용 시
- 10+ 컨테이너 실행
- 3~5 서버 분산 배포
- 트래픽 피크 시 자동 확장
- 롤아웃 시 downtime 없이 업데이트
- 실패 시 즉시 복구
4. 클라우드 플랫폼 지원
- Azure: AKS(완전 관리형 Kubernetes 서비스)
- AWS, GCP, 온프레미스 서버 지원
결론
- Docker만으로는 부족한 프로덕션 환경에서 Kubernetes 사용
kubectl
명령어와 YAML 파일 기반의 자동화된 운영- AKS, EKS, GKE 등 클라우드별 관리형 서비스 활용 추천