**Kubernetes(K8s)**는 지배적인 컨테이너 오케스트레이션 플랫폼입니다 — 머신 클러스터 전반에 걸쳐 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화합니다. 그 핵심 개념(pod, deployment, service 등)을 이해하는 것은 규모에 맞게 container를 실행하는 데 중요합니다.
Kubernetes가 하는 일
Kubernetes는 노드(머신) 클러스터 전반에 걸쳐 container를 관리하며, 다음을 제공함:
→ 스케줄링(노드에 container 배치), 자가 치유(실패한 container 재시작),
확장(축소/확장, 자동), 롤링 업데이트/롤백, 서비스 디스커버리,
로드 밸런싱, 구성/secret 관리, 저장소 오케스트레이션
→ 선언적(DECLARATIVE): 원하는 상태(DESIRED STATE)를 기술; K8s가 지속적으로 현실을 그에 맞춤.
핵심 개념
POD → 가장 작은 배포 단위: 네트워크/저장소를 공유하는 하나(또는 몇 개의
긴밀하게 결합된) container. K8s는 pod를 스케줄링함(맨 container가 아니라).
DEPLOYMENT→ 무상태 앱을 위한 원하는 pod(replica)를 선언; 롤아웃,
확장, 자가 치유를 관리(원하는 개수에 맞게 pod 재생성).
SERVICE → pod 집합을 위한 안정적인 네트워크 엔드포인트 + 로드 밸런싱(pod는
IP가 변하는 일시적인 것; Service가 안정적인 이름/IP를 제공).
INGRESS → 외부 HTTP(S) 트래픽을 service로 라우팅(규칙, TLS와 함께).
CONFIGMAP / SECRET → pod에 구성 / 민감한 데이터를 주입.
NAMESPACE → 가상 클러스터 분할(환경/팀 격리).
NODE → 워커 머신; CONTROL PLANE이 클러스터를 관리.
