안녕하세요, 정보관리기술사 최규선이에요.
이전 글에서 도커를 다뤘는데요, 오늘은 그다음 단계인 쿠버네티스(Kubernetes, 줄여서 k8s)를 정리해 볼게요.
버전과 가격은 2026년 10월 기준 공식 홈페이지를 확인했어요.
쿠버네티스가 뭐지?
쿠버네티스는 여러 서버에 흩어진 컨테이너를 자동으로 배치하고 관리해 주는 오픈소스 플랫폼이에요.
도커만으로 부족한 점
- 여러 서버: 서버가 10대면 어디에 무엇을 띄울지 사람이 정해야 해요
- 자동 복구: 컨테이너가 죽으면 쿠버네티스가 다시 띄워요
- 스케일링: 트래픽에 맞춰 개수를 늘리고 줄여요
- 무중단 배포: 새 버전을 조금씩 교체하는 롤링 업데이트
핵심은 "원하는 상태"를 선언하면 쿠버네티스가 그 상태를 계속 맞춰준다는 점이에요.
핵심 개념
- 클러스터: 쿠버네티스가 관리하는 서버 묶음 전체
- 컨트롤 플레인: 클러스터의 두뇌 (API 서버, 스케줄러, etcd 등)
- 노드: 실제 컨테이너가 돌아가는 서버
- Pod: 배포의 최소 단위, 컨테이너 1개 이상 묶음
- Deployment: Pod 개수와 버전을 관리
- Service: Pod 묶음에 고정된 접속 주소 제공
- Ingress: 외부 HTTP 요청을 서비스로 연결
- ConfigMap/Secret: 설정값과 민감정보 분리
- Namespace: 팀이나 환경별로 나누는 논리적 공간

컨트롤 플레인과 노드로 이뤄진 클러스터 구조예요. 모바일용으로 범례 배치만 바꿨어요. (출처: Kubernetes 공식 문서, CC BY 4.0)
최소 예제
Deployment + Service
nginx Pod 3개를 띄우고 클러스터 안에서 접속할 주소를 만드는 예예요.
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: nginx:1.27
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: web
spec:
selector:
app: web
ports:
- port: 80
자주 쓰는 kubectl
kubectl apply -f web.yaml
kubectl get pods
kubectl describe pod 파드이름
kubectl logs 파드이름
kubectl scale deploy web --replicas=5
kubectl rollout undo deploy web
- apply: YAML 내용대로 생성·변경
- get, describe: 상태 조회와 상세 확인
- logs: 로그 확인
- scale: Pod 개수 변경
- rollout undo: 직전 버전으로 되돌리기

웹 대시보드에서 Pod 목록과 CPU·메모리 사용량을 보는 화면이에요. (출처: Kubernetes 공식 문서, CC BY 4.0)
시작 방법
로컬 연습용
- minikube: PC에 단일 노드 클러스터
- kind: 도커 컨테이너 안에 클러스터
- Docker Desktop: 설정에서 Kubernetes 켜기
관리형 서비스
- 해외: Amazon EKS, Google GKE, Azure AKS
- 국내: NHN Kubernetes Service(NKS), 네이버클라우드 Ncloud Kubernetes Service, kt cloud Managed KS
관리형은 컨트롤 플레인을 클라우드가 대신 운영해 줘서 처음 운영하는 팀에 편해요.
언제 쓰고, 언제 안 써도 되나
- 추천: 서비스가 여러 개, 서버 여러 대, 잦은 배포, 무중단 필수
- 과할 수 있음: 단일 웹서비스, 트래픽이 일정, 운영 인력 1~2명
작은 서비스라면 도커 compose나 PaaS로도 충분해요. 쿠버네티스는 학습과 운영 비용이 분명히 있어요.
DevOps·ITS 관점
- CI/CD: 이미지 빌드 후 YAML만 바꿔 배포하면 이력 관리가 쉬워요
- ITS·공공: 수집, 연계, 관제 API를 서비스별로 나눠 독립 배포할 수 있어요
- 망분리·폐쇄망: 설치 파일과 이미지를 미리 반입하고 내부 레지스트리를 준비해야 해요
- 공공 클라우드: 쓰려는 서비스가 CSAP 인증 범위에 포함되는지 확인하세요
보안 주의점
- RBAC: 사용자·서비스 계정에 필요한 권한만
- Secret: 기본은 base64 인코딩일 뿐이라 저장 시 암호화 설정 권장
- NetworkPolicy: Pod 간 통신을 필요한 것만 허용
- 이미지 출처: 신뢰할 수 있는 레지스트리, 취약점 스캔
- API 서버: 인터넷에 그대로 노출하지 않기
- Pod Security Standards: 특권 컨테이너 등 위험 설정 제한
비용과 버전
쿠버네티스 자체는 무료 오픈소스예요. 관리형은 노드 서버 비용에 클러스터 관리비가 붙어요.
- EKS: 클러스터당 시간당 $0.10 (연장 지원 버전은 $0.60)
- GKE: 클러스터당 시간당 $0.10, 결제 계정당 월 $74.40 무료 크레딧
- AKS: Free 티어 관리비 무료, Standard 시간당 $0.10 (Premium은 공식 홈페이지 확인 필요)
- 국내 NKS 등 요금: 공식 홈페이지 확인 필요
최신 버전은 1.37이고(1.37.1, 2026년 9월 15일), 1년에 약 3번 마이너 버전이 나와요. 각 버전은 약 1년간 패치가 지원돼요.
FAQ
Q. 도커를 몰라도 되나요?
컨테이너 개념은 먼저 알고 오시는 게 좋아요. 이전 도커 글부터 보시길 추천해요.
Q. 쿠버네티스가 도커를 대체하나요?
아니에요. 도커로 만든 이미지를 쿠버네티스가 여러 서버에서 운영하는 관계예요.
Q. 개인 공부는 어떻게 시작해요?
minikube나 kind로 로컬 클러스터를 만들고 위 예제를 apply해 보세요.
Q. 버전 업그레이드는 꼭 해야 하나요?
네. 지원이 끝난 버전은 보안 패치가 없어서 정기 업그레이드 계획이 필요해요.
마무리
쿠버네티스는 "원하는 상태를 선언하면 알아서 맞춰주는" 컨테이너 운영 플랫폼이에요.
규모가 작으면 도커로 충분하고, 서비스와 서버가 늘어날 때 도입을 검토해 보세요.