Kubernetes의 정의
Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장, 운영을 자동화해주는 오픈소스 플랫폼.
구글에서 개발되어 2015년부터 **CNCF(Cloud Native Computing Foundation)**에서 관리하고 있으며, 현재는 클라우드 인프라의 표준으로 자리잡고 있다.
간단히 말하면, Kubernetes는 컨테이너를 관리하는 시스템, 즉 컨테이너 오케스트레이터.
Kubernetes 아키텍처 이해하기
Kubernetes는 다양한 구성 요소가 유기적으로 연결되어 클러스터를 이룬다. 이 클러스터는 **컨트롤 플레인(Control Plane)**과 **워커 노드(Worker Node)**로 구성되어 있다.
Control Plane (제어 플레인)
클러스터 전체를 제어하는 두뇌 역할을 한다.
- kube-apiserver: 클러스터와 외부의 통신창구 (REST API 제공)
- etcd: 클러스터 상태를 저장하는 Key-Value 저장소
- kube-scheduler: 어떤 노드에 Pod를 배치할지 결정
- kube-controller-manager: 복제, 상태 유지 등 클러스터 상태를 계속 관리
- cloud-controller-manager: 클라우드 환경과 통합 (예: AWS, GCP 등)
Worker Node (워커 노드)
컨테이너(Pod)가 실제로 실행되는 작업 노드이다.
- kubelet: 각 노드에서 Pod의 상태를 제어하고 API 서버와 통신
- kube-proxy: 네트워크 프록시 역할 (서비스 간 통신 라우팅)
- Container Runtime: Docker, containerd 등 컨테이너 실행 엔진
Kubernetes 주요 구성 요소
1. Pod
- 쿠버네티스에서 가장 작은 배포 단위
- 하나 이상의 컨테이너를 포함할 수 있음
- 같은 네트워크 공간을 공유함
2. Deployment
- Pod의 배포 방식, 복제본 수, 업데이트 전략을 정의
- 예: 롤링 업데이트, 버전 롤백 등 자동화 가능
3. Service
- Pod에 고정된 IP와 DNS 이름을 부여
- 로드밸런싱 기능도 제공
4. Namespace
- 리소스를 격리하는 가상의 공간
- 개발/운영/테스트 환경을 분리할 때 유용
5. ConfigMap & Secret
- 애플리케이션 설정을 외부에서 주입
- Secret은 암호화된 민감 정보 저장용
6. Volume
- 컨테이너는 일시적인 환경이기 때문에, 데이터를 영구 저장하려면 Volume 사용
- 다양한 스토리지와 연동 가능 (NFS, AWS EBS 등)
반응형
'Kubernetes' 카테고리의 다른 글
Kubernetes vs Docker (0) | 2025.04.22 |
---|