본문 바로가기
Container & Orchestration

[k8s] kustomize로 애플리케이션 동적 배포

by abstract.jiin 2023. 8. 11.

애플리케이션 동적 배포를 위해 kustomize를 사용해보자 

 

 

1. kustomize 명령어 설치 

우선 kustomize 명령어를 사용 가능하도록 설치하고 (kubectl 이라고 생각하면 좋다)

 

kustomize-install.sh

#!/usr/bin/env bash

curl -L \
https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv4.2.0/kustomize_v4.2.0_linux_amd64.tar.gz -o /tmp/kustomize.tar.gz
tar -xzf /tmp/kustomize.tar.gz -C  /usr/local/bin
echo "kustomize installed successfully"

2. kustomize 폴더 생성, 파일 생성

kustomize할 폴더하나를 만들고, deploy를 비롯, 필요한 yaml 을 전부 몰아서 담는다.

그리고 명령어로 그 yaml 사이에 kustomize 파일을 생성한다. 

kustomize create --autodetect

 

kustomization.yaml 이 자동 생성 되는데, 대충 이런 모양이다.

.
.
Kind: kustomization
resources: 
- 폴더에 있던 yaml 들이 명시
- 폴더에 있던 yaml 들이 명시
- blabla.yaml

 

kustomize edit set image {image 경로:Tag}

이런식으로 추가 명령을 통해 kustomization.yaml을 변경 할 수 있다. 

edit set image 명령을 하면 resources 아래로 해당 내용이 추가된다.   

resources:
.
.
images:
- name: {image 경로 - 도커 hub 주소}
  newTag: {Tag - 보통 version 정보}

 >> kustomize를 쓰는 이유, 이런식으로 동적 변경이 가능하기 때문이다. 버전 업그레이드하기 용이하다.

3. kustomize 파일 빌드 

이렇게 생성된 kustomization 파일을 빌드 명령어를 통해 적용한다. 

kustomize build | kubectl apply -f -

 

. +

+ kustomize 명령어를 사용할 수 없는 상황인데, 다른사람이 공유해준 kustomize파일을 실행해야 할 때는. 

kubectl apply -k <kustomization_derectory>

로 실행할 수 있다. 

 

https://people.wikimedia.org/~jayme/k8s-docs/v1.16/ko/docs/tasks/manage-kubernetes-objects/kustomization/