브렌쏭의 Veritas_Garage

[K8s] 개요, 키워드, 총정리 본문

[Project_하다]/[Project_공부]

[K8s] 개요, 키워드, 총정리

브렌쏭 2025. 4. 22. 10:45

쿠버네티스를 제대로 이해하기 위한 개념 정리

쿠버네티스 로고

요즘 인프라 쪽 공부하면서 쿠버네티스(Kubernetes)에 대해 정리할 필요를 느꼈다.
대충 뭔지도 알고 쓰라면 쓰겠는데, 설명하라면 곤란한 느낌의 뭐시기이므로... 일단 기록.


🚀 쿠버네티스란?

간단히 말해, 컨테이너 여러 개를 잘 배치하고, 잘 굴러가게 도와주는 시스템이다.
자동으로 배포하고, 필요할 땐 늘리고, 문제 생기면 다시 띄워준다.
우리가 원하는 상태를 선언해두면, 그 상태를 맞춰주려고 애쓰는 녀석이다.


🏗️ 클러스터

쿠버네티스 클러스터 구조
  • Control Plane: 전체 클러스터의 브레인
    • kube-apiserver: 모든 요청의 중심
    • etcd: 현재 상태 저장소
    • scheduler: 어디에 Pod를 띄울지 결정
    • controller-manager: 상태를 계속 유지해주는 컨트롤러들
  • Node (Worker): 실제 앱이 돌아가는 현장
    • kubelet: 명령 받아서 Pod 실행
    • container runtime: containerd, Docker 등
    • kube-proxy: 네트워크 연결

🗂️ Namespace

한 클러스터 안에서 논리적으로 공간을 나누는 개념.
dev, prod, team-a 등으로 구분하고 RBAC, Helm, GitOps 구성할 때도 활용된다.


📦 쿠버네티스 핵심 리소스

  • Pod: 컨테이너를 감싸고 있는 최소 단위
  • Deployment: 안정적인 운영의 기본 단위
  • ReplicaSet: Pod 수 유지
  • StatefulSet: 이름/순서/저장소 고정, DB용
  • DaemonSet: 모든 노드에 Pod 1개씩 배포

🔗 네트워크 구성

쿠버네티스 인그레스
  • Service: 외부 접근 포인트
    • ClusterIP: 내부 전용
    • NodePort: 노드IP:포트
    • LoadBalancer: 클라우드 로드밸런서
  • Ingress: 도메인/경로 기반 라우팅 (HTTPS, 인증, 프록시 등)

⚙️ 설정 관리

  • ConfigMap: 일반 설정값 저장
  • Secret: 민감 정보 저장 (base64, 암호화 아님)

💾 스토리지 개념

쿠버네티스 스토리지
  • Volume: 재시작에도 유지
  • PVC: 사용자의 요청
  • PV: 실제 저장소
  • StorageClass: PVC → PV 자동 생성 템플릿

📈 리소스 관리 & 오토스케일링

  • Request / Limit: 리소스 제한
  • Liveness / Readiness Probe: 상태 체크 후 재시작
  • HPA: 자동 스케일링 (metrics-server 필요)

🌍 운영 & 고급 리소스

  • RBAC: 권한 제어
  • Node Affinity / Toleration: 노드 배포 제어
  • Helm: 템플릿 기반 배포
  • GitOps: Git이 배포 정의서 (ArgoCD, Flux)

🛠️ 자주 쓰는 명령어 정리

명령어설명
kubectl get/apply/delete리소스 조작
kubectl describe상세 정보
kubectl logs, exec디버깅
kubectl top리소스 사용량 확인
kubectl rollout배포 상태/롤백
kubectl port-forward로컬 ↔ Pod 연결
kubectl kustomize, helm복잡한 리소스 템플릿 관리

🎯 핵심 포인트 정리

  • 쿠버네티스는 선언 → 유지라는 구조
  • Deployment: 앱 운영의 기본 단위
  • Ingress: 진입점, StatefulSet: 상태 유지
  • ConfigMap/Secret: 설정 분리, PVC: 데이터 보존
  • 운영에는 리소스 관리 + 모니터링 + 보안까지 신경 써야 함

세부적인 설명도 각각의 포스팅으로 추가할 생각.

Comments