Kustomize - build/apply/delete

2026. 1. 8. 12:55·CKA

이전 글에서 kustomize build를 배웠다면, 여기서 반드시 정리해야 하는 포인트가 하나 있습니다.

  • kustomize build는 클러스터에 아무것도 배포하지 않습니다.
  • 그냥 “최종으로 렌더링된 YAML”을 터미널(stdout)로 출력할 뿐입니다.

그래서 kubectl get pods, kubectl get deploy, kubectl get svc를 찍어도 아무것도 생성되지 않은 게 정상입니다.

그럼 “도대체 이 결과를 어떻게 클러스터에 적용하지?”가 이번 내용의 핵심입니다.


1) build 결과를 실제로 적용하는 방법 1: 파이프(|)로 kubectl apply에 전달

정석은 다음 형태입니다.

kustomize build ./k8s | kubectl apply -f -

이 명령이 하는 일(구조 이해가 핵심)

  • | (pipe)는 Linux/쉘 기능입니다. Kubernetes 전용 문법이 아닙니다.
  • 왼쪽 명령의 출력(stdout)을 오른쪽 명령의 입력(stdin)으로 넘겨줍니다.

즉,

  1. kustomize build ./k8s
    → 최종 YAML을 출력한다
  2. kubectl apply -f -
    → -f는 파일/스트림을 의미
    → -는 “파일 대신 stdin에서 읽어라”라는 뜻
    → 결과적으로, 방금 build로 만든 YAML을 바로 apply 한다

이렇게 “렌더링 → 적용”이 한 번에 연결됩니다.


2) build 결과를 실제로 적용하는 방법 2: kubectl의 -k 옵션(네이티브)

Kustomize는 kubectl에 내장되어 있으므로, 보통은 아래 한 줄로 끝냅니다.

kubectl apply -k ./k8s

여기서 -k는 “이 디렉터리의 kustomization.yaml을 기준으로 Kustomize 처리해서 적용해라”라는 의미입니다.

실무에서는 대부분 이 형태가 더 많이 쓰입니다(짧고 실수 여지가 적음).


3) 삭제(delete)는 apply와 동일한 패턴(단어만 바뀜)

적용이 가능하면, 삭제도 거의 같은 방식입니다.

방법 1) build + pipe + kubectl delete

kustomize build ./k8s | kubectl delete -f -
  • 왼쪽: 최종 YAML 출력
  • 오른쪽: 그 YAML에 해당하는 리소스들을 삭제

방법 2) kubectl -k로 삭제

kubectl delete -k ./k8s

4) 빠른 확인: 적용/삭제 후 상태 체크

적용 후

kubectl get deploy,svc
kubectl get pods

라벨을 commonLabels로 붙였다면 라벨로도 확인 가능:

kubectl get deploy,svc -l company=KodeKloud

삭제 후

kubectl get deploy,svc

리소스가 사라졌으면 정상입니다.


5) 실무 팁: 적용 전에 결과를 먼저 “눈으로 보고” 가는 습관

Kustomize는 렌더링 결과가 곧 배포 결과입니다. 그래서 적용 전에 아래를 자주 합니다.

kustomize build ./k8s | less

또는 kubectl 내장:

kubectl kustomize ./k8s | less

(가능한 환경이라면) 변경점만 확인:

kubectl diff -k ./k8s

정리

  • kustomize build는 출력만 하고, 배포하지 않는다
  • 배포하려면
    • kustomize build ... | kubectl apply -f -
    • 또는 더 간단히 kubectl apply -k ...
  • 삭제도 동일하게
    • kustomize build ... | kubectl delete -f -
    • 또는 kubectl delete -k ...
  • -k는 “kustomization.yaml 기준으로 처리”를 의미한다

'CKA' 카테고리의 다른 글

Kustomize - Transformers  (0) 2026.01.08
Kustomize - 여러 디렉토리 관리  (0) 2026.01.08
kustomize - kustomization.yaml  (0) 2026.01.08
Kustomize - Install/Setup Kustomize  (0) 2026.01.08
Kustomize - Kustomize vs Helm  (0) 2026.01.08
'CKA' 카테고리의 다른 글
  • Kustomize - Transformers
  • Kustomize - 여러 디렉토리 관리
  • kustomize - kustomization.yaml
  • Kustomize - Install/Setup Kustomize
5jyan5
5jyan5
  • 5jyan5
    jyan
    5jyan5
  • 전체
    오늘
    어제
    • 분류 전체보기 (242)
      • 김영한의 스프링 핵심 원리(기본편) (8)
      • 김영한의 스프링 핵심 원리 - 고급편 (11)
      • 김영한의 스프링 MVC 1편 (1)
      • 김영한의 스프링 DB 1편 (3)
      • 김영한의 스프링 MVC 2편 (3)
      • 김영한의 ORM 표준 JPA 프로그래밍(기본편) (9)
      • 김영한의 스프링 부트와 JPA 활용2 (2)
      • 김영한의 실전 자바 - 중급 1편 (1)
      • 김영한의 실전 자바 - 고급 1편 (9)
      • 김영한의 실전 자바 - 고급 2편 (9)
      • Readable Code: 읽기 좋은 코드를 작성.. (2)
      • 김영한의 실전 자바 - 고급 3편 (9)
      • CKA (118)
      • 개발 (37)
      • 경제 (4)
      • 리뷰 (1)
      • 정보 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      고급
      버퍼
      락
      cglib
      프록시 팩토리
      jdk 동적 프록시
      reentarantlock
      JPQL
      단방향 맵핑
      hibernate5module
      스레드
      조회 성능 최적화
      @args
      @within
      @discriminatorcolumn
      빈 후처리기
      양방향 맵핑
      페치 조인
      Target
      jpq
      WAS
      requset scope
      김영한
      log trace
      자바
      프록시
      gesingleresult
      Thread
      @discriminatorvalue
      typequery
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.2
    5jyan5
    Kustomize - build/apply/delete
    상단으로

    티스토리툴바