Helm
: 템플릿 방식, Deployment YAML 파일을 만들때, 환경에 따라 변경되는 부분을 변수로 처리한 템플릿을 만든 후에, 환경별로 변수 값을 채워 넣는 방식
- 코드를 중복으로 사용하는 일을 helm chart로 손쉽게 배포 가능
- 배포 A와 B에서 일부 항목이 달라야 하는 부분이 있다면, 그저 해당 항목을 적을 수 있는 공간 하나만 추가해주고, 설치 시점에 Helm이 해당 공간을 유저가 추가해준 값으로 대체하도록 두면 됩니다.
- 상속이 없어 장기간의 관리가 가능
- 소량의 value만을 외부에 노출해 쿠버네티스 리소스가 어떻게 구현되는 지에 대해서는 완전히 숨겨줌
# file: _charts/microserviceA/templates/secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
stringData:
database_password: {{ .Values.databasePassword }}
Kustomize
: 상속 방식, base YAML을 정의한 후에, 다른 변경할 부분만 상속받은 YAML에서 구현하는 방식, 쿠버네티스 구성을 사용자 정의화하는 도구, 폴리모픽(다형성의)한 상속 방식, 기본적으로 참조하고 있는 제너릭 쿠버네티스 리소스를 커스컴화하는 컴파일러
- kubectl명령어를 통해 바로 배포 가능
- 패치와 같은 후처리를 위한 도메인에 특정된 언어와 결합되어 있다. staging 배포에 관한 내용을 서술한 여러분의 파일은 'generic' 파일에서 상속된다는 의미. 그리고 커스텀 설정 언어를 통해 수정사항과 패치를 추가.
- kustomization.yaml 파일을 작성할 때, 상속해온 'generic' 애플리케이션의 배포 설정이 어떻게 되어 있는지도 파악하고 있어야 한다는 것이 문제
# file: microserviceA-staging/kustomization.yaml
bases:
- ../_bases/microserviceA/
commonLabels:
app: microserviceA-staging
디렉토리 구조

오리지널 파일이 있는 디렉토리 (base)를 만든 후에, 각 환경별로 다른 디렉토리(dev)를 만들고 환경별 디렉토리마다 변경할 내용이 정의된 patch 파일 작성
'인턴' 카테고리의 다른 글
체험형 인턴 경험 정리 (0) | 2024.01.29 |
---|---|
compute usage를 나타내는 Kibana 대시보드 (0) | 2023.02.03 |
[Kubernetes] helm chart 생성 (1) | 2023.02.03 |
[Kubernetes] health check - livenessProbe / readinessProbe (1) | 2023.02.03 |