쿠버네티스 오브젝트

Moongchi·2025년 6월 1일

kubernetes

목록 보기
4/14

오브젝트

구조

Namespace

  • 쿠버네티스 리소스를 논리적으로 구분하는 단위 (예: 개발, 테스트, 운영)
  • Namespace 삭제 시 포함된 리소스들도 함께 삭제됨

Service

  • 클러스터 내부 또는 외부 트래픽을 적절한 Pod에 전달해주는 추상화 계층
  • 주요 타입: ClusterIP, NodePort, LoadBalancer

Deployment

  • Deployment는 선언한 상태에 따라 ReplicaSet을 자동 생성 및 관리함
  • ReplicaSet은 지정한 수만큼 Pod가 항상 실행되도록 보장

ReplicaSet

Deployment 설정을 바탕으로 pod 생성

HPA

CPU, 메모리, 또는 사용자 정의 metric에 따라 Pod 수를 자동으로 조절

PVC

  • PVC(PersistentVolumeClaim)는 사용자의 스토리지 요청
  • PV(PersistentVolume)는 실제 물리적/논리적 스토리지 리소스
  • PVC는 PV와 바인딩되어 Pod가 스토리지를 사용할 수 있도록 함

ConfigMap

환경변수, 커맨드 인자, 설정 파일 등에 주입 가능한 Key-Value 형태의 설정 정보

Secret

비밀번호, 인증 토큰 등의 민감한 정보를 base64로 인코딩하여 저장

PV

저장장치와 마운트 설정

세부 설정

공통

name

  • 오브젝트를 식별하는 고유한 이름
  • 하나의 Namespace 내에서 유일해야 함

label

  • key: value 형태의 메타데이터
  • 오브젝트를 그룹화하거나, selector로 다른 오브젝트가 참조할 수 있음

selector

  • 특정 label을 가진 오브젝트를 선택할 때 사용
  • 예: Deployment가 관리할 Pod 선택, Service가 트래픽 전달할 Pod 선택 등

Service

  • spec.selector: 대상 Pod의 label
  • spec.ports: 포트 설정 (port, targetPort, nodePort)
  • spec.type: 서비스 유형 (ClusterIP, NodePort, LoadBalancer)

Deployment

  • spec.replicas: 생성할 Pod 수
  • spec.strategy: 배포 전략 (RollingUpdate, Recreate)
  • spec.selector: 관리 대상 Pod 선택
  • template: 생성할 Pod의 설정

ReplicaSet

  • spec.replicas: 유지할 Pod 수
  • spec.selector: 관리 대상 Pod 선택
  • template: Pod 정의 (일반적으로 Deployment에서 상속)

HPA (HorizontalPodAutoscaler)

  • spec.scaleTargetRef: 대상 리소스 (예: Deployment)
  • spec.minReplicas, maxReplicas: 최소/최대 Pod 수
  • spec.metrics: 확장 기준 (예: CPU 평균 사용률)

PVC (PersistentVolumeClaim)

  • spec.resources.requests.storage: 요청하는 저장 용량
  • spec.accessModes: 접근 방식 (ReadWriteOnce 등)
  • spec.storageClassName: 사용할 스토리지 클래스

ConfigMap

  • data: 일반 문자열 설정
  • binaryData: 바이너리 데이터 (base64 인코딩 아님)

Secret

  • data: base64 인코딩된 key-value
  • stringData: 일반 문자열로 입력하면 자동 인코딩됨

PV

  • spec.capacity.storage: 제공 가능한 스토리지 크기
  • spec.accessModes: 접근 방식 (ReadWriteOnce, ReadOnlyMany, 등)
  • spec.persistentVolumeReclaimPolicy: Retain, Recycle, Delete 중 선택
  • spec.storageClassName: 매칭될 스토리지 클래스
  • spec.hostPath, nfs, awsElasticBlockStore 등 실제 백엔드

0개의 댓글