쿠버네티스의 개념을 정리해본 글입니다.
1. Kubernetes란?
Kubernetes는 컨테이너화된 애플리케이션을 자동으로 배포, 관리, 확장할 수 있게 도와주는 오케스트레이션 도구입니다.
Docker는 컨테이너 개수가 많아지면 개별 컨테이너를 직접 관리하는 것이 어렵고 복잡해지는데, Kubernetes는 여러 컨테이너를 한꺼번에 관리하고, 자동으로 배포/확장/복구까지 해줍니다.
2. 오케스트레이션이란?
여러 가지 작업이나 프로세스를 자동으로 조율하고, 순서대로 실행하거나 동시에 처리하여 목표를 달성하는 방식을 의미합니다.
쿠버네티스에서는 컨테이너화된 애플리케이션을 자동으로 배포하고 관리하기 때문에 오케스트레이션 시스템이라고 할 수 있습니다.
3. Kubernetes 핵심 개념
- 클러스터 (Cluster): 여러 개의 서버로 구성된 클러스터에서 동작. Master Node와 여러 Worker Node가 있다.
- 노드 (Node): Kubernetes 클러스터를 구성하는 개별 서버로, Master Node와 Worker Node로 구분된다.
- 파드 (Pod): Kubernetes에서 가장 작은 배포 단위로, 컨테이너 1개 또는 여러 개를 포함할 수 있다.
- 디플로이먼트 (Deployment): 애플리케이션을 자동으로 배포하고 업데이트하는 역할을 한다.
- 서비스 (Service): Pod 앞에 놓이는 고정된 IP 역할을 하는 네트워크 엔드포인트를 제공한다.
4. Kubernetes의 장점
- 자동 확장: 트래픽이 많아지면 자동으로 Pod를 늘리고, 줄어들면 축소할 수 있다.
- 자동 복구: Pod가 비정상적으로 종료되면 자동으로 새로운 Pod를 생성하여 복구한다.
- 무중단 배포: 새로운 버전의 애플리케이션을 배포할 때, 순차적으로 업데이트하여 다운타임 없이 배포가 가능하다.
- 대규모 환경 지원
- 운영과 개발의 분리 및 자동화