핵심 인사이트

  1. 본질: Kubernetes (K8s)는 컨테이너화된 애플리케이션의 배포·스케일링·자가 치유(Self-Healing)를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼으로, 선언형(Declarative) 상태 관리가 핵심 철학이다.
  2. 가치: K8s는 수백~수천 개의 컨테이너를 수동으로 관리하는 운영 부담을 자동화로 해결하며, HPA (Horizontal Pod Autoscaler, 수평 파드 자동 확장)를 통해 트래픽 변화에 즉시 대응하는 탄력적 운영을 실현한다.
  3. 판단 포인트: 기술사 시험에서는 K8s의 핵심 오브젝트(Pod·Deployment·Service·Ingress) 역할, 마스터-워커 노드 아키텍처, HPA/VPA 차이, 고가용성 설계 방안을 체계적으로 서술해야 한다.

Ⅰ. 개요 및 필요성

마이크로서비스 아키텍처가 확산되면서 수십~수백 개의 컨테이너를 관리하는 문제가 대두되었다. Docker만으로는 컨테이너의 배포·장애 복구·스케일링·로드 밸런싱을 자동화할 수 없었고, 이를 해결하기 위해 Google이 내부 시스템(Borg)의 노하우를 바탕으로 2014년 Kubernetes를 오픈소스로 공개하였다. 현재 CNCF (Cloud Native Computing Foundation)가 관리하며, 전 세계 컨테이너 오케스트레이션의 사실상 표준(De facto Standard)이 되었다.

K8s의 핵심 철학은 선언형(Declarative) 관리다. "현재 상태를 어떻게 변경하라"고 명령하는 대신, "원하는 최종 상태(Desired State)가 무엇인지"를 선언하면 K8s가 현재 상태와의 차이를 계속 감지하고 자동으로 수렴시킨다. 이 메커니즘이 자가 치유(Self-Healing)·자동 스케일링·무중단 배포를 가능하게 하는 근본 원리다.

📢 섹션 요약 비유: K8s는 공연장의 무대 감독이다. "무대에 배우 3명이 항상 있어야 해"라고 선언하면, 한 명이 쓰러져도 즉시 다른 배우를 투입하고, 공연이 바뀌면 자동으로 배우를 교체한다. 감독이 직접 다 지시하지 않아도 된다.


Ⅱ. 아키텍처 및 핵심 원리

2-1. K8s 클러스터 아키텍처

┌──────────────────────────────────────────────────────────────────────┐
│                    Kubernetes Cluster 구조                            │
├─────────────────────────────┬────────────────────────────────────────┤
│    Control Plane (마스터)   │           Worker Nodes                 │
│                             │                                        │
│  ┌──────────────────────┐   │  ┌─────────────┐  ┌─────────────┐     │
│  │  API Server          │◄──┤  │  Worker #1  │  │  Worker #2  │     │
│  │  (모든 통신 허브)     │   │  │             │  │             │     │
│  └──────────┬───────────┘   │  │  ┌───────┐  │  │  ┌───────┐  │     │
│             │               │  │  │ Pod A │  │  │  │ Pod C │  │     │
│  ┌──────────┴───────────┐   │  │  └───────┘  │  │  └───────┘  │     │
│  │  etcd (클러스터 DB)  │   │  │  ┌───────┐  │  │  ┌───────┐  │     │
│  │  (상태 저장소)       │   │  │  │ Pod B │  │  │  │ Pod D │  │     │
│  └──────────────────────┘   │  │  └───────┘  │  │  └───────┘  │     │
│  ┌──────────────────────┐   │  │  kubelet    │  │  kubelet    │     │
│  │  Scheduler           │   │  │  kube-proxy │  │  kube-proxy │     │
│  └──────────────────────┘   │  └─────────────┘  └─────────────┘     │
│  ┌──────────────────────┐   │                                        │
│  │  Controller Manager  │   │                                        │
│  └──────────────────────┘   │                                        │
└─────────────────────────────┴────────────────────────────────────────┘

2-2. 핵심 K8s 오브젝트

오브젝트역할핵심 특징
Pod컨테이너 실행 최소 단위1개 이상의 컨테이너, 동일 네트워크·스토리지 공유
DeploymentPod 복제·업데이트 관리롤링 업데이트, 롤백 지원
ReplicaSet지정된 Pod 복제본 수 유지Deployment가 내부적으로 사용
ServicePod 집합에 대한 안정적 네트워크 엔드포인트ClusterIP·NodePort·LoadBalancer 유형
Ingress외부 HTTP/HTTPS 트래픽 라우팅 규칙URL 경로·호스트 기반 라우팅
ConfigMap환경 설정 데이터 분리 저장12-Factor App Factor 3 구현
Secret민감 데이터(비밀번호·토큰) 관리Base64 인코딩, etcd 저장
PersistentVolume영구 스토리지 연결Pod 재시작 후에도 데이터 유지
HPAHorizontal Pod Autoscaler, 수평 자동 확장CPU/메모리 메트릭 기반 Pod 수 조절

📢 섹션 요약 비유: K8s 오브젝트는 레스토랑 운영 시스템이다. Pod은 요리사 한 명, Deployment는 요리사 팀장, Service는 안내 데스크, Ingress는 입구의 안내판이다. 각자 역할이 명확하고, 모두 협력하여 손님(트래픽)을 처리한다.


Ⅲ. 비교 및 연결

3-1. HPA vs. VPA vs. Cluster Autoscaler 비교

구분HPA (수평 확장)VPA (수직 확장)Cluster Autoscaler
전체 명칭Horizontal Pod AutoscalerVertical Pod AutoscalerCluster Autoscaler
확장 방향Pod 수 증가/감소Pod의 CPU·메모리 할당 조정워커 노드 수 증가/감소
응답 속도빠름 (수 초~수 분)중간 (Pod 재시작 필요)느림 (노드 프로비저닝 시간)
적합 워크로드무상태(Stateless) 서비스메모리 집약적 단일 프로세스전체 클러스터 용량 관리
한계단일 Pod 처리 한계 존재Pod 재시작으로 잠시 중단노드 추가 시간 지연

3-2. K8s Service 유형 비교

Service 유형접근 범위사용 사례
ClusterIP클러스터 내부만마이크로서비스 간 내부 통신
NodePort외부 → 노드 IP:Port개발·테스트 환경
LoadBalancer클라우드 LB를 통한 외부 접근프로덕션 외부 트래픽
ExternalName외부 DNS 이름으로 라우팅외부 데이터베이스 연결

3-3. 고가용성(HA) 설계 방안

K8s 클러스터 고가용성을 위해 Control Plane을 3개 이상의 홀수 노드로 구성하여 etcd 쿼럼(Quorum)을 보장한다. Pod AntiAffinity 정책으로 동일 서비스의 Pod들이 서로 다른 워커 노드에 분산 배치되도록 하며, PodDisruptionBudget (PDB)으로 유지보수 중에도 최소 가용 Pod 수를 보장한다.

📢 섹션 요약 비유: K8s HA는 항공기 엔진을 여러 개 달아두는 것과 같다. 엔진 하나가 꺼져도 나머지 엔진으로 비행이 계속된다. K8s는 장애가 생겨도 자동으로 다른 서버에 서비스를 다시 띄운다.


Ⅳ. 실무 적용 및 기술사 판단

4-1. 운영 환경 K8s 배포 전략

배포 전략설명장점단점
Rolling Update구버전 Pod를 점진적으로 신버전으로 교체무중단, 단순롤백 시간 소요
Blue/Green신버전 환경 완전 준비 후 트래픽 일괄 전환즉시 롤백 가능리소스 2배 필요
Canary신버전에 소량(예: 5%) 트래픽만 우선 인가위험 최소화설정 복잡

4-2. 보안 강화 방안

  • RBAC (Role-Based Access Control, 역할 기반 접근 제어): 최소 권한 원칙으로 서비스 계정 권한 제한
  • Network Policy: Pod 간 허용 트래픽 화이트리스트 방식으로 통제
  • Pod Security Admission: 특권(Privileged) 컨테이너 실행 제한
  • Image Scanning: CI/CD에서 취약점 스캔(Trivy) 후 신뢰된 이미지만 배포
  • Secrets 관리: HashiCorp Vault + External Secrets Operator 연동

4-3. 모니터링 및 관찰 가능성

Prometheus로 K8s 메트릭을 수집하고, Grafana 대시보드로 시각화한다. 알림은 Alertmanager가 처리하여 Slack·PagerDuty로 전송한다. 분산 추적은 Jaeger 또는 OpenTelemetry를 사용하며, 이 세 가지(메트릭·로그·추적)가 K8s 운영의 관찰 가능성 삼각형을 구성한다.

📢 섹션 요약 비유: Canary 배포는 광산에 카나리아 새를 먼저 보내는 것처럼, 새 기능을 소수 사용자에게만 먼저 보내서 문제가 없는지 확인한 뒤 전체로 확장하는 안전한 배포 방식이다.


Ⅴ. 기대효과 및 결론

Kubernetes는 컨테이너 기반 애플리케이션의 운영 복잡성을 자동화로 해결하여, 엔지니어가 인프라 관리 대신 비즈니스 가치 창출에 집중할 수 있게 한다. HPA를 통한 자동 스케일링은 예상치 못한 트래픽 급증에도 SLA (Service Level Agreement, 서비스 수준 계약)를 유지하고, Self-Healing은 장애 탐지·복구 자동화로 운영 비용을 절감한다.

기술사 시험에서는 ① K8s 마스터-워커 아키텍처의 컴포넌트 역할, ② 핵심 오브젝트(Pod·Deployment·Service·Ingress) 간 관계, ③ HPA·VPA·Cluster Autoscaler 차이, ④ Blue/Green·Canary 배포 전략을 체계적으로 서술하고, 고가용성 설계 방안까지 포함해야 완성도 높은 답안이 된다.

📢 섹션 요약 비유: K8s는 "절대 쉬지 않는 자동화 공장 관리자"다. 직원(컨테이너)이 쓰러지면 즉시 새 직원을 투입하고, 주문(트래픽)이 늘면 자동으로 직원을 더 뽑고, 새 작업 방식(버전)으로 교체할 때도 공장을 멈추지 않는다.


📌 관련 개념 맵

개념설명연관 키워드
Kubernetes (K8s)컨테이너 오케스트레이션 플랫폼CNCF, Google Borg
PodK8s 배포 최소 단위컨테이너, 공유 네트워크
DeploymentPod 선언형 관리·업데이트 오브젝트롤링 업데이트, 롤백
ServicePod 집합의 안정적 네트워크 엔드포인트ClusterIP, LoadBalancer
Ingress외부 HTTP 트래픽 라우팅 규칙URL 경로, 호스트 기반
HPAHorizontal Pod Autoscaler, 수평 자동 확장CPU 메트릭, 스케일링
etcdK8s 클러스터 상태 저장 분산 KV 스토어쿼럼, 고가용성
RBACRole-Based Access Control, 역할 기반 접근 제어최소 권한, ServiceAccount
Canary 배포소량 트래픽 신버전 선 테스트 배포 방식위험 최소화, Istio

👶 어린이를 위한 3줄 비유 설명

  1. K8s는 "로봇 공장 감독"이야. 로봇(컨테이너) 하나가 고장 나면 즉시 새 로봇을 투입하고, 주문이 많아지면 자동으로 로봇을 더 만들어. 감독이 항상 깨어있어서 공장이 절대 멈추지 않아.
  2. Pod는 로봇 한 팀, Deployment는 팀장, Service는 고객 안내 창구야. 고객(트래픽)은 창구에 요청하면 되고, 어떤 팀이 처리하는지는 K8s가 알아서 결정해.
  3. HPA는 "손님이 많아지면 자동으로 직원을 더 뽑는 스마트 인사팀"이야. 손님이 줄면 인력도 자동으로 줄여서 비용 낭비도 없어.