Transformers
정보
Transformation이란?
kustomization.yaml에서 원본 리소스에 적용할 변경 사항들을 나타내는 구성 요소이다.- 아래 요소들 외에도 많은
Transformation들이 있지만, 이 글에서는 이정도만 소개
Common Transformations
개념
- 여러 쿠버네티스 리소스에 공통적인 설정을 일괄 적용할 때 사용한다.
- 주요 기능
commonLabels: 모든 리소스에 공통 라벨을 추가한다.- 리소스 뿐만 아니라
selector필드에도 주입된다.
- 리소스 뿐만 아니라
namespace: 모든 리소스가 배포될 네임스페이스를 지정한다.namePrefix/nameSuffix: 모든 리소스 이름의 앞이나 뒤에 특정 문자열을 붙인다.commonAnnotations: 모든 리소스에 공통 어노테이션을 추가한다.
예시
- 모든 리소스 이름 뒤에
-dev붙임 - 모든 리소스에
org: KodeKloud라벨 붙이기 development네임스페이스에 배포하기
kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
# 1. 네임스페이스 일괄 적용
namespace: development
# 2. 이름 접두사/접미사 적용 (Suffix 예시)
nameSuffix: -dev
# namePrefix: dev- <-- 접두사가 필요하면 사용
# 3. 공통 라벨 적용
commonLabels:
org: KodeKloud
# 4. 공통 주석 적용
commonAnnotations:
maintainer: "devops-team"
Image Transformer
개념
Deployment나Pod에서 사용하는 컨테이너의 이미지 이름이나 태그를 변경할 때 사용한다.- 주요 속성
name: 변경하고 싶은 '기존' 이미지 이름newName: 교체할 새로운 이미지 이름newTag: 교체할 새로운 태그
예시
kustomization.yaml
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
images:
- name: nginx # 찾을 이미지 (Target)
newName: haproxy # 변경할 이미지
newTag: "2.4"
레퍼런스
- Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests (Mumshad)