클라우드/Kubernetes
00. 쿠버네티스 개요 및 소개
코딩 펭귄
2022. 2. 21. 14:44
쿠버네티스(Kubernetes)
쿠버네티스는 컨테이너 오케스트레이션 도구로, 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼입니다. 줄여서 k8s 도는 kube라고도 부릅니다.
컨테이너 오케스트레이션 (Container Orchestration)
컨테이너 오케스트레이션은 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화합니다. 컨테이너 오케스트레이션의 목적은 여러 컨테이너의 배포 프로세스를 최적화하는 데 있습니다. 컨테이너 오케스트레이션은 다음과 같은 다양한 기능을 포함할 수 있습니다.
- 컨테이너 자동 배치 및 복제
- 컨테이너 그룹에 대한 로드 밸런싱
- 컨테이너 장애 복구
- 클러스터 외부에 서비스 노출
- 컨테이너 추가 또는 제거를 통한 확장 및 축소
- 컨테이너 서비스 간의 인터페이스를 통한 연결 및 네트워크 포트 제어
두 개 이상의 서버에서 도커 데몬을 사용하는 경우 idle 상태인 서버를 선택하여 해당 서버에 컨테이너를 생성, 운용하여야 합니다. 하지만 일일이 각 서버에 접근하여 유휴 자원을 확인하는 것은 비효율적이기 때문에 쿠버네티스와 같은 오케스트레이션 툴이 등장하였습니다.
idle : 프로세스가 실행되고 있지 않은 상태
다른 컨테이너 오케스트레이션 툴로는 도커 스웜, ECS, Nomad 등이 있습니다.
쿠버네티스의 특징
- 자동화된 복구 (self-healing) : 컨테이너들을 모니터링하며, 컨테이너 중 하나라도 죽는 경우 쿠버네티스가 빠르게 재시작합니다.
- 로드 밸런싱 (Load balancing) : 접속하는 유저의 수에 따라 자동으로 컨테이너를 생성, 삭제합니다.
- 무중단 (Fault Tolerance; FT) 서비스 : 점진적 업데이트를 제공하여 서비스를 중단하지 않고 애플리케이션을 업데이트할 수 있도록 합니다.
- 호환성 (Vendor Lock In) 해결 : 도커 컨테이너를 기반으로 하는 오픈소스이기 때문에 사용자들이 특정 업체에 종속되지 않습니다. 따라서 서로 다른 업체의 클라우드 제품 간의 호환 문제가 발생하지 않습니다.
도커와 쿠버네티스의 차이
도커는 이미지를 컨테이너에 띄우고 실행하는 기술이고, 쿠버네티스는 도커를 관리하는 툴입니다. 따라서 도커는 한 개의 컨테이너를 관리하는 데 최적화되어 있고, 쿠버네티스는 여러 개의 컨테이너를 서비스 단위로 관리하는 데 최적화되어 있습니다.