Kubernetes

Kubernetes 정의 및 구성요소

박쿠리 2025. 4. 22. 14:03

Kubernetes의 정의

Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장, 운영을 자동화해주는 오픈소스 플랫폼.
구글에서 개발되어 2015년부터 **CNCF(Cloud Native Computing Foundation)**에서 관리하고 있으며, 현재는 클라우드 인프라의 표준으로 자리잡고 있다.

간단히 말하면, Kubernetes는 컨테이너를 관리하는 시스템, 즉 컨테이너 오케스트레이터.


Kubernetes 아키텍처 이해하기

Kubernetes는 다양한 구성 요소가 유기적으로 연결되어 클러스터를 이룬다. 이 클러스터는 **컨트롤 플레인(Control Plane)**과 **워커 노드(Worker Node)**로 구성되어 있다.

출처: kubernetes.io 공식 문서

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