쿠버네티스(Kubernetes) 아키텍처 개요
쿠버네티스(K8s)는 컨테이너화된 애플리케이션의 배포, 스케일링, 운영을 자동화하는 오픈소스 플랫폼입니다. 정보처리기사 시험에서는 컨트롤 플레인 구성 요소, 핵심 워크로드 오브젝트, 네트워킹, 스토리지 개념이 주요 출제 범위입니다.
컨트롤 플레인(Control Plane) 구성 요소
- API Server: K8s의 프런트엔드. 모든 REST 요청 처리, 인증·인가·어드미션 컨트롤
- etcd: 분산 키-값 저장소. 클러스터 상태(모든 오브젝트) 저장. Raft 합의 알고리즘
- Scheduler: 파드를 어떤 노드에 배치할지 결정. 리소스 요청, 친화성/반친화성 규칙 고려
- Controller Manager: Replication Controller, Node Controller 등 다양한 컨트롤러 실행
워커 노드(Worker Node) 구성 요소
- kubelet: 각 노드의 에이전트. API Server와 통신, 파드 실행 보장
- kube-proxy: 네트워크 프록시. Service의 네트워크 규칙 유지 (iptables/IPVS)
- Container Runtime: containerd, CRI-O 등 실제 컨테이너 실행
핵심 워크로드 오브젝트
- Pod: K8s 최소 배포 단위. 하나 이상의 컨테이너 포함. 같은 IP 공유
- Deployment: 스테이트리스 앱 관리. ReplicaSet 관리, 롤링 업데이트/롤백
- StatefulSet: 스테이트풀 앱(DB). 안정적인 네트워크 ID, 순서 있는 배포/삭제
- DaemonSet: 모든 노드에 파드 하나씩 실행(로그 수집, 모니터링 에이전트)
- Job/CronJob: 일회성/반복 배치 작업
Service와 Ingress
- ClusterIP: 클러스터 내부에서만 접근 가능한 가상 IP
- NodePort: 각 노드의 포트를 통해 외부 접근
- LoadBalancer: 클라우드 로드 밸런서 프로비저닝
- Ingress: HTTP/HTTPS 라우팅 규칙 정의. 호스트 기반/경로 기반 라우팅. TLS 종료
HPA와 스토리지(PV/PVC)
HPA(Horizontal Pod Autoscaler): CPU/메모리 사용률 또는 커스텀 메트릭 기반으로 Deployment의 레플리카 수 자동 조정
- PV(PersistentVolume): 관리자가 프로비저닝하는 스토리지 리소스
- PVC(PersistentVolumeClaim): 사용자의 스토리지 요청. 파드와 PV를 바인딩
- StorageClass: 동적 프로비저닝. PVC 생성 시 자동으로 PV 생성
Helm: K8s 패키지 관리자. Chart(패키지 템플릿)로 복잡한 애플리케이션 배포 단순화
정보처리기사 기출 핵심 정리
- etcd = 클러스터 상태 저장소, Raft 합의
- StatefulSet vs Deployment: 스테이트풀 vs 스테이트리스
- HPA = 수평 자동 확장(레플리카 수 조정)
- Ingress = L7 HTTP 라우팅, LoadBalancer = L4 TCP
- PVC = 사용자 스토리지 요청, PV = 실제 스토리지