
생성 수정
Kubernetes · 3장
핵심 객체와 배포 자동화
Pod·Deployment·Service·Namespace부터 설정, 확장, 자가 복구와 무중단 배포까지, 원문 PDF 7~14쪽을 읽는다.
3장 · 총 8개 절 · 전체 9개 장 중 3번째
Pod — 가장 작은 배포 단위
3장 · 01
P O D · 파드 쿠버네티스의가장작은배포단위
주 애플리케이션
보조 컨테이너(옵션)
같은 IP / Network 같은 Volume
최소 배포 단위
K8s가 만들고 관리하는 가장 작은 단위. 한 개 이상의 컨테이너를 묶어 같은 네트워크와 볼륨을 공유합니다.
Ephemeral · 일시적
수명 주기가 짧음. 죽으면 새 IP의 새 파드가 생겨서 desired count가 유지됩니다.
사이드카 패턴
주 컨테이너 옆에 로깅 · 프록시 · 동기화 같은 보조 컨테이너를 함께 두는 구조.
출처: JunHo Lee · 『쿠버네티스 종합 개요』 · 원문 PDF 7쪽
Deployment — 선언적 배포와 업데이트
3장 · 02
D E P L O Y M E N T · 디플로이먼트 선언적배포와무중단업데이트
배포(Deploy)를 관리하는 K8s 오브젝트
의도된 상태(예: replicas=5)를 선언하면, 컨트롤러가 현재 상태를 desired state로 맞추도록 파드를 생성/제거합니다.
선언적 관리
의도된 상태를 YAML로 선언하면 컨트롤러가 그 상태를 자동으로 유지합니다.
롤링 업데이트
기존 파드를 한 개씩 교체해 무중단으로 새 버전을 배포합니다.
자동 롤백
배포 도중 문제가 감지되면 이전 버전으로 자동 롤백할 수 있습니다.
R O L L I N G U P D A T E · 단계적 교체
현재v1 × 4
1개교체
절반교체
거의완료
v2 × 4 완료
출처: JunHo Lee · 『쿠버네티스 종합 개요』 · 원문 PDF 8쪽
Service — 변하지 않는 접근점
3장 · 03
S E R V I C E · 서비스 변하는파드위에변하지않는접근점
파드들의 동적 변화를 가려주는 안정적인 IP·DNS 추상화. kube-proxy가 트래픽을 파드들에게 분산합니다.
안정적인 접근점
변하지 않는 IP/포트를 통해 파드 그룹을 대표.
레이블 셀렉터
label로 어떤 파드가 서비스 뒷단인지 결정.
다양한유형
ClusterIP · NodePort · LoadBalancer · ExternalName.
로드밸런싱
kube-proxy + iptables/IPVS로 부하 분산.
S e r v i c e T y p e s
| ClusterIP | 클러스터 내부 통신(기본값) |
|---|---|
| NodePort | 노드 포트로 외부 노출 |
| LoadBalancer | 클라우드 LB와 연동 |
| ExternalName | 외부 DNS로 매핑 |
출처: JunHo Lee · 『쿠버네티스 종합 개요』 · 원문 PDF 9쪽
Namespace — 논리적 분리
3장 · 04
N A M E S P A C E · 네임스페이스 하나의클러스터를여러개의가상클러스터처럼
Pod Pod Pod Pod
Pod Pod Pod Pod
Pod Pod Pod Pod
논리적 구분
클러스터 자원을 프로젝트/팀/환경별로 가상 분리. 같은 이름의 리소스도 네임스페이스가 다르면 공존.
환경 분리
dev · staging · prod를 한 클러스터에서 운영하면서 충돌을 방지. RBAC와 ResourceQuota도 NS 단위로.
보안 한계
기본적으로 네트워크는 공유. 강한 격리가 필요하면 NetworkPolicy · 멀티클러스터 · 멀티테넌시 도구 검토.
출처: JunHo Lee · 『쿠버네티스 종합 개요』 · 원문 PDF 10쪽
ConfigMap과 Secret
3장 · 05
C O N F I G · 환경 설정 분리 ConfigMap 과Secret
ConfigMap
애플리케이션 설정값(키-값) 저장
이미지를 다시 빌드하지 않고 환경별 설정을 외부에서 주입할 수 있어 이식성과 재사용성이 높아집니다.
주입 방식
환경변수로 주입(env 또는 envFrom)
볼륨 마운트로 파일 형태 주입
Pod 매니페스트의 command/args 인자
Secret
민감정보(비밀번호 · 토큰 · 인증서) 저장
Pod와 독립적으로 생성·관리되어 노출 위험을 줄이고, 매니페스트에 암호를 직접 넣지 않게 해줍니다.
주의 · 기본은 base64 인코딩일 뿐
etcd 저장 시 암호화 옵션 활성화, KMS 연동, 또는 Sealed Secrets · External Secrets · HashiCorp Vault 같은 도구 사용을 권장합니다.
출처: JunHo Lee · 『쿠버네티스 종합 개요』 · 원문 PDF 11쪽
확장성 — HPA·VPA·노드 자동 확장
3장 · 06
S C A L A B I L I T Y · 확장성 부하에따라자동으로늘었다줄었다
C A S E S T U D Y · P o k é m o n G O
출시 직후 예상의 50배 트래픽 폭주 → GKE 기반 인프라가 자동 확장으로 서비스 유지 × 50
H o r i z o n t a l P o d A u t o s c a l e r
수평 자동 확장(HPA)
CPU · Memory · 커스텀 메트릭 기반으로 파드 개수를 자동 증감.
V e r t i c a l P o d A u t o s c a l e r
수직 확장(VPA)
Pod의 CPU/메모리 요청·제한값을 자동으로 조정하여 자원 활용을 최적화.
C l u s t e r A u t o s c a l e r
노드 자동 확장
파드를 띄울 자리가 부족하면 노드 자체를 추가. 클라우드 환경에서 특히 강력.
출처: JunHo Lee · 『쿠버네티스 종합 개요』 · 원문 PDF 12쪽
자가 복구
3장 · 07
S E L F - H E A L I N G · 자가 복구 사람이깨어있지않아도클러스터는깨어있다
01 S T E P 0 1
상태모니터링
kubelet과컨트롤러가파드·노드의
상태를지속점검
02 S T E P 0 2
장애감지
파드크래시· 노드다운· liveness
실패등을감지
03 S T E P 0 3
자동복구
새파드생성또는다른노드에재
스케줄링
04 S T E P 0 4
가용성보장
별도복구스크립트없이도
desired state 회복
“쿠버네티스오케스트레이션을도입하면서버파드가죽어도K8s가감지해자동으로다시실행하므로, 과거레거시환경에서필요했던복잡한 장애복구설정이더이상필요없어졌습니다.”
— 데브시스터즈(국내게임사)
출처: JunHo Lee · 『쿠버네티스 종합 개요』 · 원문 PDF 13쪽
무중단 배포 전략
3장 · 08
Z E R O D O W N T I M E · 무중단 배포 서비스를끊지않고새버전으로
Rolling Update
기본 전략. 기존 파드를 한 개씩 교체.
장점 리소스 효율적, 점진적 배포
유의 두 버전이 잠시 공존
Blue / Green
새 환경(Green)에 통째로 배포 후 트래픽 전환.
장점 빠른 롤백, 단순한 검증
유의 리소스 2배 필요
Canary
일부 트래픽만 신버전으로 보내 검증.
장점 위험 최소화, 점진 전환
유의 서비스 메시 등 도구 필요
쿠버네티스 기본기
Rolling Update + 자동롤백
Deployment 컨트롤러가 maxSurge · maxUnavailable 설정으로 점진 교체 속도를 제어합니다. readinessProbe가 통과해야 다음 파드를 교체하므로 트래픽이 끊기지 않습니다.
실패 감지 시
kubectl rollout undo deployment/<name>
이전 ReplicaSet으로 즉시 복귀하여 장애 영향을 최소화합니다.
출처: JunHo Lee · 『쿠버네티스 종합 개요』 · 원문 PDF 14쪽
LangTailor