쿠버네티스
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. 갱신 · 틀린 내용을 발견하면 알려 주세요.