클라우드응용SW개발

[Cloud] 12주차-1. 쿠버네티스와 Minikube

tryinto_gmlt 2026. 6. 4. 02:01

⭐ 쿠버네티스(Kubernetes)란?

쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼이다. Docker와 같은 컨테이너 기술을 사용하면 애플리케이션을 동일한 환경에서 실행할 수 있지만, 컨테이너 수가 많아질수록 이를 직접 배포하고 관리하기 어려워진다.

이때 쿠버네티스는 여러 서버(Node)에 걸쳐 컨테이너를 자동으로 배포하고, 실행 상태를 관리하며, 장애가 발생하면 복구하는 역할을 한다. 즉, 쿠버네티스는 여러 컨테이너를 안정적으로 운영하기 위한 관리 시스템이라고 볼 수 있다.

2014년 Google이 오픈소스로 공개했으며, 현재는 CNCF(Cloud Native Computing Foundation)에서 관리하고 있다.

 

주요 기능

1. 자동화된 컨테이너 관리

  • 컨테이너의 배포, 스케일링, 롤아웃(업데이트), 롤백을 자동으로 처리

2. 서비스 디스커버리 & 로드 밸런싱

  • DNS 이름 또는 IP 주소를 통해 컨테이너에 접근 가능하도록 지원
  • 트래픽을 여러 컨테이너에 고르게 분산

3. 스토리지 오케스트레이션

  • 로컬 저장소나 클라우드 스토리지를 컨테이너에 자동으로 연결하여 사용

4. 자동 복구 (Self-healing)

  • 컨테이너가 중단되면 자동으로 재시작
  • 노드(서버)에 문제가 발생하면 해당 컨테이너를 다른 노드에서 다시 실행

5. 선언적 구성

  • 원하는 상태를 YAML 파일에 정의하면, 쿠버네티스가 현재 상태를 지속적으로 확인하고 원하는 상태로 유지

 

쿠버네티스 아키텍처 구조

쿠버네티스 클러스터는 크게 마스터(Master)와 워커 노드(Worker Node)로 구성된다.

구분 구성 요소  역할
Kubernetes Master
전체 클러스터를 관리하는
컨트롤 플레인
API Server 모든 요청의 진입점. kubectl 명령어를 받아 처리
Scheduler 새로운 Pod를 어느 노드에 배치할지 결정
Controller-Manager 클러스터 상태를 지속적으로 감시하고 원하는 상태 유지
etcd 클러스터의 모든 설정 및 상태 정보를 저장하는 분산 키-값 저장소
Worker Node
실제 애플리케이션이
실행되는 서버
Pod 컨테이너를 실행하는 가장 작은 단위. 하나의 Pod 안에 하나 이상의 컨테이너 포함 가능
kubelet 마스터의 명령을 받아 해당 노드의 Pod 상태 관리
Kube-proxy 네트워크 트래픽 라우팅 처리

 

⭐ 쿠버네티스의 주요 배포판

쿠버네티스는 다양한 환경과 목적에 맞게 여러 배포판이 존재한다. 크게 직접 설치형클라우드 관리형으로 나눌 수 있다.

 

1. 바닐라 쿠버네티스 (Vanilla Kubernetes)

  • CNCF에서 관리하는 공식 배포판
  • 가장 순수한 형태로, 다른 모든 배포판의 기준이 됨

2. Red Hat OpenShift

  • 기업용으로 설계된 엔터프라이즈급 배포판
  • CI/CD 파이프라인, Helm 차트 등 다양한 도구가 기본 내장
  • RHEL(Red Hat Enterprise Linux) 기반으로 운영

3. Rancher

  • 온프레미스/클라우드 등 다양한 환경에서 멀티 클러스터 관리에 강점
  • RKE(Rancher Kubernetes Engine)를 통한 간편한 클러스터 구축 지원

4. Amazon EKS (Elastic Kubernetes Service)

  • AWS에서 제공하는 관리형 쿠버네티스 서비스
  • AWS 인프라와 긴밀하게 통합되어 있어 AWS 사용자에게 최적

5. Google GKE (Google Kubernetes Engine)

  • 쿠버네티스를 만든 구글이 제공하는 관리형 서비스
  • 쿠버네티스 최신 기능을 가장 빠르게 반영

6. Microsoft AKS (Azure Kubernetes Service)

  • Microsoft Azure에서 제공하는 관리형 쿠버네티스 서비스
  • Azure 클라우드 서비스와 통합되어 있어 Azure 사용자에게 최적

7. DigitalOcean Kubernetes

  • 간단한 설정과 저렴한 비용으로 빠르게 쿠버네티스 환경 구축 가능
💡클라우드 제공업체의 관리형 서비스(EKS, GKE, AKS)는 해당 클라우드에 최적화되어 있고,
Rancher나 OpenShift 같은 배포판은 환경에 구애받지 않고 유연하게 사용할 수 있다.

⭐ 미니쿠베 (Minikube)

Minikube는 로컬 환경에서 쿠버네티스를 실습하기 위한 경량 배포판이다.
실제 운영 클러스터는 여러 서버(노드)가 필요하지만, Minikube는 단일 노드로 마스터와 워커를 하나에 구성해주기 때문에 개인 PC에서도 쿠버네티스를 경험해볼 수 있다.

주요 특징

  • 단일 노드 클러스터: 마스터 + 노드가 하나의 VM 안에 구성됨
  • 경량화: 개발, 테스트, 학습 목적에 최적화된 구현체
  • 크로스 플랫폼: Linux, macOS, Windows 모두 지원
  • 핵심 기능 지원: DNS, NodePort, ConfigMap, Secret, 대시보드, Ingress 등 실무에서 쓰는 주요 기능 대부분 사용 가능
💡실제 프로덕션 환경에서는 EKS, GKE, AKS 같은 클라우드 관리형 서비스를 사용하지만,
쿠버네티스를 처음 배우는 단계에서는 Minikube로 시작하는 것이 가장 일반적이다.