해당 포스트는 인프런 강의를 수강한 뒤 개인적으로 요약·정리한 블로그 글입니다.
영어 약어/단어 | 정의 | 발음 예시 |
---|---|---|
master | 클러스터 전체를 관리하는 제어 노드(Control Plane) | 마스터 |
node | 애플리케이션이 실제로 돌아가는 워커 머신 | 노드 |
k8s | Kubernetes의 축약 표현 (k + 8글자 + s) | 쿠버네티스 |
kubectl | Kubernetes를 제어하기 위한 CLI(Command Line Interface) | 큐브 컨트롤, 큐브 시티엘 |
etcd | Kubernetes의 분산 키-값 저장소(데이터베이스) | 엣지디, 이티시디 |
Pod | Kubernetes에서 가장 작은 배포 단위(컨테이너 묶음) | 파드, 팟 |
Service | Pod들의 네트워크 접근점을 추상화한 리소스 | 서비스 |
Ingress | 클러스터 외부에서 들어오는 HTTP/HTTPS 트래픽을 라우팅 | 인그레스 |
Namespace | 클러스터를 가상으로 분리하는 논리적 공간 | 네임스페이스 |
ConfigMap | 설정(환경변수·명령줄 인자 등)을 저장하는 리소스 | 컨피그맵 |
Secret | 암호·토큰·인증서 같은 민감 정보를 저장하는 리소스 | 시크릿 |
PV / PVC | PersistentVolume / PersistentVolumeClaim (영구 스토리지) | 피브이 / 피브이시 |
Helm | Kubernetes 패키지 매니저 (Charts 사용) | 헬름 |
Istio | 서비스 메시(Service Mesh) 구현체 | 이스티오 |
Knative | Kubernetes 위에서 서버리스(Function) 실행을 돕는 플랫폼 | 케이 네이티브 |
왜 필요한가?
쿠버네티스의 해결책
핵심 컴포넌트 구조
graph TD
A[Control Plane] -->|API 요청| B[kube-apiserver]
B --> C[kube-scheduler]
B --> D[kube-controller-manager]
B --> E[etcd]
F[Worker Node] -->|Pod 관리| G[kubelet]
F -->|네트워크| H[kube-proxy]
G --> Pod[Pod]
Control Plane
kube-apiserver
: API 요청 처리etcd
: 클러스터 상태 저장kube-scheduler
: Pod 배치 결정kube-controller-manager
: 레플리카 관리 등 컨트롤러 실행Worker Node
kubelet
: Control Plane과 통신하며 Pod 실행kube-proxy
: 네트워크 룰 설정왜 Kubernetes인가?
정의
클라우드 장점을 최대한 활용하는 애플리케이션 설계·구축 패러다임
과거 vs 현재
구성 요소
Deployment
→ ReplicaSet
→ Pod
Service
→ Pod 그룹에 IP·DNS 제공Ingress
→ Service에 외부 트래픽 라우팅ConfigMap
/Secret
→ Pod에 설정·민감정보 주입PVC
→ Pod에 영구 볼륨 마운트kubectl apply -f deployment.yaml
전략 | 설명 | 사용 사례 |
---|---|---|
Rolling Update | 순차 교체로 무중단 업그레이드 | 서비스 다운타임 최소화 필요 시 |
Recreate | 기존 파드 전부 삭제 후 일괄 생성 | 짧은 다운타임 허용 가능 시 |
Blue/Green | Blue/Green 환경 동시 유지 후 트래픽 전환 | 안전한 롤백·검증 환경 분리 시 |
Canary Release | 일부 사용자에만 새 버전 배포 후 확대 | 리스크 최소화, 기능 실험 단계에서 |
✨ 이 글에서 쿠버네티스의 핵심 개념과 아키텍처, 배포 전략까지 한눈에 살펴보았습니다.
다음 포스트에서는 실제 deployment.yaml
예제를 작성하고, Helm Chart를 이용해 배포를 자동화하는 과정을 단계별로 다뤄볼게요. 🚀