
목적: Kubernetes 리소스를 그룹화하거나 다른 팀/서비스 간 충돌 방지용.
하나의 클러스터 안에서 여러 프로젝트를 독립적으로 운영할 수 있음.
목적: Pod를 몇 개 생성할지, 어떻게 배포할지 설정.
주요 키워드:
replicas: 몇 개의 Pod를 띄울지
template: Pod에 어떤 컨테이너를 쓸지 정의 (image, env, volume 등 포함)
목적: Pod 앞에 붙는 고정된 네트워크 접점.
Pod IP는 유동적이지만, Service는 고정된 IP와 포트를 제공해서 외부 또는 내부 통신에 사용됨.
목적: Pod에 환경 변수 등을 주입
ConfigMap: 일반적인 설정값
Secret: 민감한 정보 (비밀번호, 인증키 등)
목적: Pod가 쓸 수 있는 외부 저장 공간을 붙임.
PVC: Pod가 원하는 저장소 크기, 접근 방식 등 요청
PV: 실제 물리적인 디스크(로컬 또는 클라우드 볼륨 등)
목적: 부하에 따라 Pod 개수를 자동 조절
CPU 사용량이나 커스텀 메트릭 기준으로 scale up/down
Metrics Server: CPU/메모리 사용량 수집
Dashboard: 웹 UI로 클러스터 상태 확인 및 관리 가능

name: 오브젝트 고유 이름namespace 안에서는 유일해야 함kubectl get, describe 등에서 정확히 하나의 리소스를 지정할 때 사용Deployment:
metadata:
name: api-tester-1231
Pod:
metadata:
name: api-tester-1231-xxxxx
labels: 오브젝트에 붙이는 속성 태그key: value 형식의 속성 메타데이터selector랑 연결됨)labels:
part-of: k8s-anotherclass
component: backend-server
name: api-tester
instance: api-tester-1231
version: 1.0.0
selector: label 기반 필터Deployment → Pod, Service → Pod, PVC → PV 등의 자동 연결 핵심selector:
matchLabels:
instance: api-tester-1231
Deployment (name: api-tester-1231)
└── selector → labels: instance=api-tester-1231
└── Pod (labels 포함)
Service
└── selector → labels: instance=api-tester-1231
└── 해당 Pod들과 네트워크 연결
HPA
└── scaleTargetRef → name: api-tester-1231
└── 정확한 Deployment 1개를 직접 지정
PVC
└── selector → labels: instance=api-tester-1231
└── PV와 연결됨
| 항목 | 의미 | 역할 | 중복 가능 | 연결 방식 | 예시 |
|---|---|---|---|---|---|
name | 오브젝트 고유 이름 | 딱 하나 지목 | ❌ 불가 | 직접 지정 | Deployment: api-tester-1231 |
labels | key-value 속성 태그 | 특징 표현 + selector 대상 | ✅ 가능 | 선택 조건으로 활용 | app=web, version=1.0.0 |
selector | labels 기반 조건 필터 | 여러 오브젝트 연결 기준 | ❌ (자체는 없음) | label로 연결됨 | selector: app=web |
name: 정확한 대상을 지정 (유일)label: 속성 태그 (여러 개 가능, 선택 조건이 됨)selector: label을 기준으로 오브젝트 그룹 연결인프런 : 쿠버네티스 어나더 클래스 - 지상편