본문 바로가기
Cloud Infrastructure/Kubernetes

[쿠버네티스] 1일차: 도커 호스트를 묶어주는 쿠버네티스 기초 완벽 정리

by chung_yu 2026. 1. 13.

[Kubernetes] 1일차: 도커 호스트를 묶어주는 쿠버네티스 기초 완벽 정리

1. 쿠버네티스(K8s) 기본 개념

  • 정의: 여러 대의 도커 호스트를 하나의 클러스터(여러 개를 하나처럼 관리)로 만들어주는 오케스트레이션 도구입니다.
  • 사용 환경:
    1. 클라우드 플랫폼: AWS(EKS), GCP(GKE) 등 (로드 밸런서, 퍼시스턴트 볼륨 등 클라우드 전용 기능 활용 가능)
    2. 온프레미스: 자체 보유 서버 환경

2. 핵심 오브젝트(Object) 상세 분석

쿠버네티스는 모든 리소스를 오브젝트 형태로 관리합니다.

오브젝트 명 핵심 설명 및 특징 비고
Pod (파드) 쿠버네티스에서 생성하고 관리할 수 있는 최소 배포 단위입니다. 하나 이상의 컨테이너를 포함하며 저장소와 네트워크를 공유합니다. 최소 단위
Service (서비스) 파드 집합에 접근할 수 있는 **고정된 엔드포인트(IP)**를 제공합니다. 파드가 교체되어 IP가 변해도 서비스 IP는 유지됩니다. 네트워크 노출
Volume (볼륨) 컨테이너가 재시작되어도 데이터를 영구적으로 보존하기 위한 저장소입니다. 로컬 디렉터리나 클라우드 스토리지를 연결합니다. 데이터 영속성
Namespace (네임스페이스) 클러스터 내의 리소스들을 논리적으로 구분하는 가상 클러스터입니다. 팀별, 환경별(Dev/Prod) 격리에 사용됩니다. 리소스 격리

 

📌 서비스(Service) 타입 상세

  • ClusterIP: 내부에서만 파드들에 접근할 때 사용
  • NodePort: 모든 노드의 특정 포트를 개방하여 접근
  • LoadBalancer: 클라우드 플랫폼의 로드 밸런서를 동적 프로비저닝하여 연결

3. 컴포넌트(Component) vs 오브젝트(Object)

  • 오브젝트: 사용자가 원하는 상태(YAML)로 만드는 결과물 (Pod, Service 등)
  • 컴포넌트: 오브젝트가 약속대로 움직이게 뒤에서 일하는 부품(엔진)
    • 마스터 노드: 클러스터 관리 (API 서버, 컨트롤러 매니저, 스케줄러, coreDNS 등)
    • 워커 노드: 컨테이너 생성 및 실행 (kube-proxy, 네트워크 플러그인 등)

4. YAML 파일 구조 (4대 필수 요소)

쿠버네티스는 선언적 관리를 위해 YAML을 사용합니다.

  1. apiVersion: 오브젝트의 API 버전
  2. kind: 오브젝트 종류 (ex: Pod)
  3. metadata: 이름, 라벨, 주석 등 부가 정보
  4. spec: 리소스 생성을 위한 상세 정의 (컨테이너, 이미지, 포트 등)
YAML
 
apiVersion: v1
kind: Pod
metadata:
  name: nginx-demo
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

 

💡 실무 Tip & 용어 정리

  1. 서버 구성: 기능 활용을 위해 최소 3대(1 마스터, 2~3 워커) 이상 권장
  2. 네트워크: calico 같은 네트워크 플러그인이 필요하며, 네트워크 네임스페이스가 컨테이너 고유 환경을 제공함
  3. 사이드카: 기능 확장을 위해 한 파드에 보조 컨테이너를 포함하는 방식
  4. MSA: 애플리케이션을 잘게 쪼개 관리하는 마이크로서비스 아키텍처