TechFeedTechFeed
Cloud & DevOps

개발자가 알아야 할 Kubernetes 기초

Kubernetes의 핵심 개념을 개발자 관점에서 정리한다. Pod, Service, Deployment, ConfigMap, Ingress 등 기본 리소스 설명과 로컬 개발 환경(minikube·kind) 셋업 가이드를 포함한다.

한 줄 요약: Kubernetes는 컨테이너 오케스트레이션 표준으로, Pod/Service/Deployment의 3가지 핵심 개념과 kubectl 기본 명령만 알면 시작할 수 있다.

Docker로 컨테이너를 만들었다면, 여러 컨테이너를 자동으로 배포, 스케일링, 복구하는 것은 Kubernetes의 역할이다. 이 가이드는 K8s의 핵심 개념과 개발자가 알아야 할 실전 패턴을 정리한다.

K8s가 해결하는 문제

Docker가 컨테이너를 만든다면, Kubernetes는 수백 개의 컨테이너를 관리합니다. 자동 스케일링, 롤링 업데이트, 자가 치유, 로드 밸런싱을 제공합니다.

K8s가 해결하는 문제 — 클라우드 인프라 아키텍처
개발자가 알아야 할 Kubernetes 기초 — 클라우드 인프라 아키텍처 (출처: 공식 문서 및 벤치마크 데이터 기반)
K8s가 해결하는 문제 — 클라우드 인프라 아키텍처
개발자가 알아야 할 Kubernetes 기초 — 클라우드 인프라 아키텍처 (출처: 공식 문서 및 벤치마크 데이터 기반)

Pod은 K8s의 최소 배포 단위로, 하나 이상의 컨테이너를 포함한다. 대부분의 경우 Pod 하나에 컨테이너 하나를 넣는다. Service는 Pod들에 대한 안정적인 네트워크 접근점(IP/DNS)을 제공한다. Pod은 수시로 생성/삭제되지만 Service는 유지된다. Deployment는 Pod의 원하는 상태(replicas 수, 이미지 버전 등)를 선언하고, K8s가 이를 유지한다.

Deployment + Service YAML
apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 3 selector: matchLabels: { app: my-app } template: metadata: labels: { app: my-app } spec: containers: - name: app image: my-app:1.0 ports: [{ containerPort: 3000 }] resources: requests: { memory: 128Mi, cpu: 100m } limits: { memory: 256Mi, cpu: 200m } --- apiVersion: v1 kind: Service metadata: name: my-app-svc spec: selector: { app: my-app } ports: [{ port: 80, targetPort: 3000 }]

핵심 개념 5가지

  • Pod: 가장 작은 배포 단위 (컨테이너 1개 이상)
  • Deployment: Pod의 원하는 상태 선언
  • Service: Pod에 접근하는 네트워크 엔드포인트
  • Ingress: 외부 트래픽을 서비스로 라우팅
  • ConfigMap/Secret: 설정과 비밀 관리
핵심 개념 5가지 — 배포 파이프라인 다이어그램
개발자가 알아야 할 Kubernetes 기초 — 배포 파이프라인 다이어그램 (출처: 공식 문서 및 벤치마크 데이터 기반)

필수 kubectl 명령어

개발자가 매일 쓰는 kubectl 명령: kubectl get pods(Pod 상태 확인), kubectl logs -f pod-name(로그 실시간 확인), kubectl describe pod pod-name(상세 이벤트), kubectl exec -it pod-name -- sh(컨테이너 접속), kubectl apply -f manifest.yaml(배포/업데이트).

로컬 개발에서는 minikubeDocker Desktop의 K8s를 사용하면 노트북에서 클러스터를 실행할 수 있다. 프로덕션에서는 AWS EKS, Google GKE, Azure AKS 같은 관리형 서비스를 사용하는 것이 운영 부담을 줄인다.

실전 팁: 처음부터 K8s가 필요하지 않다. 트래픽이 적은 초기 서비스는 Docker Compose + 단일 서버로 충분하다. K8s는 여러 서비스를 독립적으로 배포/스케일해야 할 때 도입하라.
kubernetesk8s컨테이너오케스트레이션배포

관련 포스트

개발자를 위한 Docker 실전 가이드 20262026-02-19Docker Compose vs Kubernetes — 언제 무엇을 선택할까2026-03-22GitHub Actions CI/CD 실전 가이드2026-02-22Vercel vs Netlify vs Cloudflare Pages — 2026 배포 플랫폼 비교2026-03-14