Kustomize 핵심 개념: 베이스(Base)와 오버레이(Overlay) 완전 정복

32 sec read

Kubernetes 설정을 효율적으로 관리하고 싶으신가요? 그렇다면 오늘 소개할 Kustomize의 베이스(Base)와 오버레이(Overlay) 개념을 꼭 알아두세요!

마치 기본 옷(Base) 위에 액세서리(Overlay) 를 더해 상황에 맞는 스타일을 완성하듯, 설정도 그렇게 관리할 수 있습니다. 지금부터 Kustomize 설정의 마법 같은 구조를 소개합니다. ✨


1️⃣ 시작하며: 왜 Base와 Overlay가 중요한가요?

Kustomize는 설정 파일을 조합하여 여러 환경에 맞는 Kubernetes 리소스를 손쉽게 생성하는 도구입니다.

그 핵심에 있는 것이 바로 BaseOverlay 개념입니다.

🧵 비유로 이해하기

  • Base = 모든 환경에서 공통으로 사용하는 기본 옷
  • Overlay = 특정 상황에 맞춰 추가하는 액세서리
    → 환경에 따라 입고 벗으며 설정을 커스터마이징합니다!

🎯 이 글의 목표

  • ✅ Base와 Overlay의 개념과 역할 이해
  • ✅ 설정 구조 및 파일 구성 방법 익히기
  • ✅ 실습을 통해 환경별 설정을 적용하는 법 배우기

🧱 2. Base란? 공통 설정의 핵심

📌 Base의 역할

  • 여러 환경에서 공통으로 사용하는 설정
  • 중복을 줄이고 유지보수 효율 향상
  • 주로 Deployment, Service 등 기본 리소스를 포함

💡 Base 예시

📁 디렉토리 구조

base/
├── deployment.yaml
├── service.yaml
└── kustomization.yaml

📄 base/kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - deployment.yaml
  - service.yaml

🎨 3. Overlay란? 환경별 맞춤 설정

📌 Overlay의 역할

  • 개발(dev), 운영(prod), 테스트 환경처럼 환경별 차이점을 정의
  • 주로 patch, transformers를 통해 Base를 수정

💡 Overlay 예시

📁 디렉토리 구조

overlays/
└── dev/
    ├── patch-dev.yaml
    └── kustomization.yaml

📄 overlays/dev/kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
  - ../../base
patches:
  - patch-dev.yaml

📄 patch-dev.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  template:
    spec:
      containers:
        - name: my-app
          image: my-registry/my-app:v1.0-dev

🔀 4. Base + Overlay: 조화로운 설정 관리

✅ 조합의 이점

  • 중복 제거 → 코드 재사용성 향상
  • 환경별 설정 분리 → 유지보수 용이
  • 설정 변경에도 안정성 확보

⚙️ 변경 흐름

  1. Base 변경 → Overlay는 자동 반영됨
  2. Overlay는 Base를 확장하거나 수정함
  3. 환경별 맞춤 설정을 쉽고 안전하게 구현

🧪 5. 실전 예제: 환경별 설정 관리

📁 디렉토리 구조

.
├── base
│   ├── deployment.yaml
│   ├── service.yaml
│   └── kustomization.yaml
└── overlays
    ├── dev
    │   ├── patch-dev.yaml
    │   └── kustomization.yaml
    └── prod
        ├── patch-prod.yaml
        └── kustomization.yaml

✅ dev 환경 적용

kubectl apply -k ./overlays/dev

✅ prod 환경 적용

kubectl apply -k ./overlays/prod

-k 옵션은 해당 디렉토리의 kustomization.yaml을 기준으로 설정을 조합합니다.


Kustomize로 완성하는 고급 리소스 관리법

1️⃣ 시작하며: 왜 리소스 관리가 중요한가요? Kubernetes 환경에서는 수많은 리소스가 서로 얽혀 작동합니다.이 리소스들을 구분하고 정리하고 관리할 수 없다면, 운영은 점점 복잡해집니다. 이번 장에서는...
eve
39 sec read

Kustomize 시작하기: kustomization.yaml 완벽 가이드

Kubernetes 설정을 보다 효율적으로 관리하고 싶다면, Kustomize는 필수 도구입니다. 그리고 그 중심에는 바로 kustomization.yaml 파일이 있습니다. 이 글에서는 kustomization.yaml 파일의 구조와 주요 키워드를 소개하고,...
eve
40 sec read

쿠버네티스 시크릿 관리, 어떤 방법이 최선일까? 4가지 방식 장단점…

쿠버네티스에서 애플리케이션을 운영할 때, DB 접속 정보나 API 키 같은 민감한 정보, 즉 ‘시크릿(Secret)’을 어떻게 관리해야 할지는 모두의 공통된 고민입니다. 관리 방식은 보안, 운영...
eve
13 sec read