구구달스 2024. 1. 24. 23:56

 

kustomize

  • 템플릿이 없는 원시 YAML 파일을 여러 용도에 맞게 사용자 지정할 수 있으며, 원본 YAML은 그대로 사용할 수 있습니다.

https://kubectl.docs.kubernetes.io/

 

SIG CLI

Documentation for Kubectl and Kustomize

kubectl.docs.kubernetes.io

https://kubectl.docs.kubernetes.io/

  • Kubectl 1.14부터 kustomization 파일을 사용하여 Kubernetes 개체 관리도 지원


kustomization 만들기

  • YAML 리소스 파일( deployments, services, configmaps 등)이 포함된 일부 디렉터리에서 kustomization 파일을 만듭니다.
  • 이 파일에는 해당 리소스와 해당 리소스에 적용할 사용자 정의(예: 공통 레이블 추가)를 선언해야 합니다.
~/someApp
├── deployment.yaml
├── kustomization.yaml
└── service.yaml
  • 사용자 지정 YAML을 생성
kustomize build ~/someApp
  • YAML을 클러스터에 직접 적용
kustomize build ~/someApp | kubectl apply -f -

오버레이를 사용하여 variants 만들기

  • 공통 base  을 수정하는 overlays  를 사용하여 개발, 스테이징 및 프로덕션과 같은 기존 구성의 variants 을 관리합니다.
~/someApp
├── base
│   ├── deployment.yaml
│   ├── kustomization.yaml
│   └── service.yaml
└── overlays
    ├── development
    │   ├── cpu_count.yaml
    │   ├── kustomization.yaml
    │   └── replica_count.yaml
    └── production
        ├── cpu_count.yaml
        ├── kustomization.yaml
        └── replica_count.yaml
  • 위 kustomization 만들기 의 작업을 base 라는 someApp 하위 디렉터리로 이동한 다음 형제 디렉터리에 overlays 를 배치
  • overlays base  를 참조하고 해당 base  에 적용할 패치를 참조하는 또 다른 kustomization
  • 이 배열을 사용하면 git으로 구성을 쉽게 관리할 수 있습니다. base   에는 다른 사람이 관리하는 업스트림 리포지토리의 파일이 있을 수 있습니다. overlays  는 사용자가 소유한 리포지토리에 있을 수 있습니다.

  • 다음을 사용하여 YAML 생성
kustomize build ~/someApp/overlays/production
  • YAML은 클러스터에 직접 적용
kustomize build ~/someApp/overlays/production | kubectl apply -f -