[섹션7] Object 그려보며 이해하기

·2025년 5월 31일

전체적인 구조

1. Namespace

목적: Kubernetes 리소스를 그룹화하거나 다른 팀/서비스 간 충돌 방지용.

하나의 클러스터 안에서 여러 프로젝트를 독립적으로 운영할 수 있음.

2. Deployment

목적: Pod를 몇 개 생성할지, 어떻게 배포할지 설정.

주요 키워드:

replicas: 몇 개의 Pod를 띄울지

template: Pod에 어떤 컨테이너를 쓸지 정의 (image, env, volume 등 포함)

3. Service

목적: Pod 앞에 붙는 고정된 네트워크 접점.

Pod IP는 유동적이지만, Service는 고정된 IP와 포트를 제공해서 외부 또는 내부 통신에 사용됨.

4. ConfigMap / Secret

목적: Pod에 환경 변수 등을 주입

ConfigMap: 일반적인 설정값

Secret: 민감한 정보 (비밀번호, 인증키 등)

5. PVC / PV (PersistentVolumeClaim / PersistentVolume)

목적: Pod가 쓸 수 있는 외부 저장 공간을 붙임.

PVC: Pod가 원하는 저장소 크기, 접근 방식 등 요청

PV: 실제 물리적인 디스크(로컬 또는 클라우드 볼륨 등)

6. HPA (Horizontal Pod Autoscaler)

목적: 부하에 따라 Pod 개수를 자동 조절

CPU 사용량이나 커스텀 메트릭 기준으로 scale up/down

7. Dashboard / Metrics Server (부가기능)

Metrics Server: CPU/메모리 사용량 수집

Dashboard: 웹 UI로 클러스터 상태 확인 및 관리 가능


name, labels, selector

1. name: 오브젝트 고유 이름

  • 각 오브젝트의 식별자 (ID)
  • 같은 namespace 안에서는 유일해야 함
  • kubectl get, describe 등에서 정확히 하나의 리소스를 지정할 때 사용

🔎 예시

Deployment:
  metadata:
    name: api-tester-1231
Pod:
  metadata:
    name: api-tester-1231-xxxxx

2. labels: 오브젝트에 붙이는 속성 태그

  • key: value 형식의 속성 메타데이터
  • 하나의 오브젝트에 여러 개 가능
  • 다른 리소스에서 선택 기준으로 활용됨 (즉, selector랑 연결됨)

🔎 예시

labels:
  part-of: k8s-anotherclass
  component: backend-server
  name: api-tester
  instance: api-tester-1231
  version: 1.0.0

3. selector: label 기반 필터

  • 특정 label 조건에 맞는 오브젝트들을 찾아 연결
  • Deployment → Pod, Service → Pod, PVC → PV 등의 자동 연결 핵심
  • 하나 또는 여러 개의 조건으로 필터링 (AND 조건)

🔎 예시

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와 연결됨

3개 비교 (표)

항목의미역할중복 가능연결 방식예시
name오브젝트 고유 이름딱 하나 지목❌ 불가직접 지정Deployment: api-tester-1231
labelskey-value 속성 태그특징 표현 + selector 대상✅ 가능선택 조건으로 활용app=web, version=1.0.0
selectorlabels 기반 조건 필터여러 오브젝트 연결 기준❌ (자체는 없음)label로 연결됨selector: app=web

3개 요약 (정의)

  • name: 정확한 대상을 지정 (유일)
  • label: 속성 태그 (여러 개 가능, 선택 조건이 됨)
  • selector: label을 기준으로 오브젝트 그룹 연결

Reference

인프런 : 쿠버네티스 어나더 클래스 - 지상편

profile
DevOps를 기반으로 한 클라우드, 알고리즘, 백엔드 관심있는 컴공생

0개의 댓글