Taeyoung Kim

Cloud & Platform

Kubernetes 구조 이해와 구성

Kubernetes 구조 이해와 구성 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.


1. Container Management

  • 컨테이너 개념: OS 수준 가상화로 커널 공유, 빠른 시작·종료, 경량화, 리소스 절약.
  • 마이크로서비스 아키텍처(MSA): 서비스별 독립 배포·스케일링·모니터링 가능.
  • 구성 방식 비교:
    • 호스트 기반: 여러 서비스가 OS 자원을 공유 → 자원 경합, 복잡한 배포.
    • VM 기반: 서비스 단위 캡슐화, 안정적 배포 가능하지만 이미지 크기 큼.
    • 컨테이너 기반: Docker 중심, 경량·고속 배포, MSA에 최적.
  • 오케스트레이션 필요성: 수십~수천 컨테이너의 자동 배치·확장·모니터링을 위해 Kubernetes, Docker Swarm, Mesos, Rancher 등 사용.

2. Platform as a Service (PaaS)

  • 기능:
    • 코드/빌드 관리: GitHub, Maven 등으로 버전 관리 및 자동 빌드.
    • 웹 앱 서버·프레임워크: 테스트·배포 환경 제공 (Spring, Node.js 등).
    • 모델·컴포넌트 서비스: BPM, BI, OSGi 등으로 서비스 통합·자동화.
    • 데이터베이스/테스트: 대규모 DB 샌드박스, Jenkins·Selenium·Sonar로 CI/CD·품질 관리.
  • 장점: 인프라 관리 불필요, 신속한 프로토타이핑·배포, 자동 확장 및 백업·복구 간소화.

3. Kubernetes

  • 개념: 컨테이너 오케스트레이션 플랫폼, 멀티 클라우드·베어메탈 지원, 100% 오픈소스.
  • 아키텍처:
    • Master Node: API Server, Scheduler, Controller Manager, etcd로 클러스터 상태 관리.
    • Worker Node: Pod 실행. Kubelet, kube-proxy, Container Runtime(Docker/containerd) 포함.
  • 핵심 개념:
    • Pod: 배포 최소 단위, 컨테이너 집합.
    • Object Model: Declarative Desired State 유지(ReplicaSet, Deployment, StatefulSet, DaemonSet 등).
    • Service & Networking: ClusterIP, NodePort, LoadBalancer, ExternalName 타입으로 서비스 제공 및 로드밸런싱.
    • 스토리지: Volume, PersistentVolume(PV), PersistentVolumeClaim(PVC), StorageClass로 동적 프로비저닝.
    • Config 관리: ConfigMaps, Secrets.
    • 헬스체크: Liveness/Readiness Probes.
    • 고급 리소스: Ingress(L7 로드밸런싱), Jobs·CronJobs(배치 작업), StatefulSets(상태 유지 Pod).

4. Azure Kubernetes Service (AKS)

  • 개념: Azure의 관리형 Kubernetes 서비스. Master는 Azure가 관리하고, 사용자는 Node(VM) 자원만 비용 지불.
  • 구성 요소:
    • API Server, Scheduler, Controller Manager, etcd 등 Kubernetes 핵심 모듈 Azure에서 완전 관리.
    • Node는 실제 컨테이너 실행.
  • 네트워킹:
    • 기본 또는 고급 네트워크 옵션(Azure CNI) 제공.
    • Azure Load Balancer로 외부·내부 서비스 노출, UDR 경로 지정 가능.
  • 스토리지: Azure Disk/Files, StorageClass를 통한 동적 볼륨 프로비저닝.
  • 확장성: 자동 클러스터/Pod 스케일링 지원.
  • 개발 연계: GitHub, Jenkins, Helm, Draft, OpenFaaS 등과의 통합으로 CI/CD 및 서버리스 확장 용이.