Managing Directories

Yu Sang Min·2025년 7월 7일

CKA

목록 보기
106/110
post-thumbnail

✅ 문제 상황: 디렉토리 구조가 복잡해질 때

처음에는 단순하게 k8s/ 디렉토리에 .yaml 파일 몇 개만 존재할 수 있음.
예:

k8s/
├── api-deployment.yaml
├── api-service.yaml
├── db-deployment.yaml
└── db-service.yaml

이 상태에선 그냥 kubectl apply -f k8s/로 적용하면 끝남.

하지만 리소스가 많아지면 하위 디렉토리로 나누는것이 용이함.

k8s/
├── api/
│   ├── deployment.yaml
│   └── service.yaml
├── db/
│   ├── deployment.yaml
│   └── service.yaml
├── cache/
│   └── ...
└── kafka/
    └── ...

이제 kubectl apply를 하려면 각 디렉토리마다 일일이 들어가야 해. 비효율적이고 유지보수가 힘들어짐.


✅ Kustomize로 해결하기

1단계. 루트 디렉토리에 kustomization.yaml 생성

# k8s/kustomization.yaml
resources:
  - api/
  - db/
  - cache/
  - kafka/
  • resources는 하위 디렉토리를 가리킴.
  • 하위 디렉토리 안에는 각자의 kustomization.yaml이 있어야 함!

2단계. 하위 디렉토리별 kustomization.yaml 작성

예: k8s/api/kustomization.yaml

resources:
  - deployment.yaml
  - service.yaml

이 구조를 db/, cache/, kafka/에도 각각 만들어줌.


✅ 구성 요약

k8s/
├── kustomization.yaml        # root - 상위 디렉토리 전체를 조립
├── api/
│   ├── deployment.yaml
│   ├── service.yaml
│   └── kustomization.yaml    # api 디렉토리 전용 구성
├── db/
│   ├── deployment.yaml
│   ├── service.yaml
│   └── kustomization.yaml
├── cache/
│   └── ...
└── kafka/
    └── ...

✅ 배포 / 삭제 명령어

배포 (두 가지 방법)

kustomize build k8s/ | kubectl apply -f -

또는 (kubectl 내장 기능)

kubectl apply -k k8s/

삭제

kubectl delete -k k8s/

✅ 장점

항목설명
✅ 모듈화디렉토리 단위로 관리 가능 (서비스, 컴포넌트별로 분리)
✅ 유지보수성 ↑루트 설정은 깔끔하게 유지
✅ 자동화 용이CI/CD 파이프라인 구성 간단해짐
✅ 확장성 ↑디렉토리만 추가하면 쉽게 리소스 확장 가능
profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글