쿠버네티스

Kubernetes (K8s)

쿠버네티스는 컨테이너화된 애플리케이션의 배포·확장·복구를 선언적 설정(Desired State)과 제어 루프(Reconciliation Loop)로 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼이다.

핵심 키워드

컨테이너 오케스트레이션컨트롤 플레인(API Server·etcd·Scheduler·Controller Manager)워커 노드(kubelet·kube-proxy·컨테이너 런타임)파드(Pod)선언적 구성·원하는 상태(Desired State)자동 복구(Self-healing)오토스케일링(HPA)서비스 디스커버리·로드밸런싱CRI·CNI·CSI

구성도

정리

1. 개요

  • 정의: 컨테이너 기반 워크로드의 배포·스케일링·운영을 자동화하는 오케스트레이션 플랫폼
  • 배경
    • MSA 확산으로 수많은 컨테이너의 배치·장애 복구·확장 수작업 관리 한계
    • Google 내부 시스템(Borg) 경험 기반으로 오픈소스화, CNCF가 관리
    • 멀티·하이브리드 클라우드의 사실상 표준 실행 플랫폼

2. 구성/원리

  • 컨트롤 플레인
    • kube-apiserver: 모든 요청의 단일 진입점(REST API), 인증·인가
    • etcd: 클러스터 상태 저장 분산 키-값 저장소
    • kube-scheduler: 자원 요구·제약 조건 기반 파드 배치 노드 결정
    • kube-controller-manager: 현재 상태를 원하는 상태로 맞추는 컨트롤러 실행
  • 워커 노드
    • kubelet: 노드 에이전트, 파드 명세대로 컨테이너 실행·상태 보고
    • kube-proxy: 서비스 IP 기반 트래픽 라우팅
    • 컨테이너 런타임: CRI 호환(containerd, CRI-O)
  • 주요 오브젝트: Pod, ReplicaSet, Deployment, StatefulSet, DaemonSet, Job, Service, Ingress, ConfigMap, Secret, PV/PVC, Namespace
  • 동작 원리: YAML로 원하는 상태 선언 → API Server 저장(etcd) → 컨트롤러가 차이 감지·조정 (Reconciliation Loop)
  • 확장 인터페이스: CRI(런타임), CNI(네트워크), CSI(스토리지), CRD·Operator(사용자 정의 리소스)

3. 특징 또는 비교

기능설명
자동 복구장애 컨테이너 재시작, 노드 장애 시 파드 재배치
오토스케일링HPA(파드 수), VPA(자원량), Cluster Autoscaler(노드 수)
무중단 배포롤링 업데이트·롤백, 카나리·블루그린 연계
서비스 디스커버리Service·DNS 기반 이름 해석과 부하분산
설정·비밀 관리ConfigMap, Secret 분리
구분Docker 단독쿠버네티스
범위단일 호스트 컨테이너 실행다수 노드 클러스터 관리
확장·복구수동자동(선언적)
네트워킹호스트 단위클러스터 전역 서비스 네트워크

4. 고려사항·최신 동향

  • 복잡성: 학습 곡선·운영 부담 → 관리형 서비스(EKS, AKS, GKE 등) 활용
  • 보안: RBAC 최소 권한, 네트워크 정책, Pod Security Standards, 이미지 서명·취약점 스캔, Secret 암호화
  • 상태 저장 워크로드: StatefulSet·Operator로 DB 운영 시 백업·복구 설계
  • 비용·자원: 리소스 요청/제한 설정, FinOps 관점의 과다 할당 관리
  • 동향
    • dockershim 제거 이후 CRI 런타임 표준화
    • Ingress를 대체·확장하는 Gateway API 확산
    • GitOps(Argo CD, Flux), 플랫폼 엔지니어링, AI/ML·GPU 워크로드 스케줄링 고도화
    • 서비스 메시, 서버리스(Knative), 엣지용 경량 배포판(K3s 등)과 결합

함께 볼 토픽

v1 · 2026. 10. 19. 갱신 · 틀린 내용을 발견하면 알려 주세요.