글이 이전되었습니다. 링크: https://malwareanalysis.tistory.com/402
안녕하세요. 이 글은 kustomize 시리즈 2편입니다.
1. kustomize을 실행하기 위한 조건
kustomization.yaml파일이만 있으면 kustomize명령어를 실행할 수 있습니다. 그리고, kustomize를 적용할 yaml파일을 준비합니다. 보통 kustomization.yaml파일이 있는 같은 경로에 yaml파일을 위치시킵니다.
yaml파일이 없어도 kustomization.yaml만 있으면 동작을 합니다. yaml파일이 없는 상황은 새로운 쿠버네티스 리소스를 만들려고할 때 사용합니다.
$ tree
.
├── kustomization.yaml
└── pod.yaml
2. kustomization.yaml파일은 무엇일까?
kustomization.yaml은 kustomize가 실행될 때 어떤 필드를 재정의할 것인가를 설정하는 파일입니다. 여러가지 필드로 설정(https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/)할 수 있는데 공식문서에서 소개하는 기본 필드는 4개입니다. 그 이외의 patch, namespace 등의 필드가 존재합니다.
✳️ 개인생각으로 다른 필드는 transformers유형으로 취급되는 것 같습니다.
- resources 필드: kustomize를 적용할 쿠버네티스 리소스(yaml파일)
- generators 필드: 새로 생성할 필드를 설정
- transformers 필드: 기존 필드 변경을 설정
- validators 필드: 검증
resources:
- {pathOrUrl}
- ...
generators:
- {pathOrUrl}
- ...
transformers:
- {pathOrUrl}
- ...
validators:
- {pathOrUrl}
- ...
필드는 정해진 순서로 실행됩니다. 공식문서에 기본 필드로 소개된 필드들은 resources → generators → transformers → validators 순서로 실행됩니다. 실행과정을 정리하면 기존 정의된 쿠버네티스 리소스yaml파일을 읽고 새로운 필드를 추가(generators)한 후, 필드를 수정(transformers)하고 검증(validators)을 합니다. 검증이 끝나면 최종 쿠버네티스 리소스를 화면에 출력(stdout)합니다.
✳️ 4가지 필드가 아닌 다른 필드들이 정의되면, 정확하지 않지만 아마도? transfomers유형으로 취급되어서 3번째 순서로 실행되는 것 같아요.
3. built-ins
generators와 transformers는 직접 개발해서 사용할 수 있고 이미 내장된 built-ins(내장된)을 사용할 수 있습니다. 앞으로 저희가 공부할 내용은 built-ins generators와 transformers가 무엇이 있고 어떻게 사용하는지 배우게 될 겁니다.
buit-ins 종류: https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/
4. 제가 생각하는 공부방향
kustomize는 쿠버네티스처럼 상당히 공부할 양 양이 많아서 다 하기에는 벅찹니다. 그러므로 컨셉을 이해하고 필요한 buitl-ins기능을 사용하고 없다면 직접 개발하는 방향으로 kustomize를 공부하는 것이 좋다고 생각합니다.
'연재 시리즈' 카테고리의 다른 글
Kustomize 빠르게 시작하기 (0) | 2022.08.07 |
---|---|
kustomize 3편 - resources필드 의미 (0) | 2022.08.03 |
kustomize 1편 - kustomize란? (0) | 2022.08.02 |
오퍼레이터 5주차 postgresql (0) | 2022.06.20 |
쿠버네티스 오퍼레이터 스터디 3주차 - strimzi operator를 이용한 카프카 토픽 읽기/쓰기 작업 (0) | 2022.06.12 |