- k8s의 Gradle - Gradle이 .jar 파일을 관리한다면, Helm은 k8s yaml 파일 뭉치(Chart)를 관리한다. - 개발자 입장에서 Helm이 해결해 주는 핵심 문제는 바로 하드코딩 제거와 재사용성이다. Helm 없이 k8s를 운영하면 "복붙의 지옥"에 빠진다. - 상황 : api 서비스를 Alpha, Beta, Real 환경에 배포해...
.jar 파일을 관리한다면, Helm은 k8s yaml 파일 뭉치(Chart)를 관리한다.Helm 없이 k8s를 운영하면 "복붙의 지옥"에 빠진다.
api 서비스를 Alpha, Beta, Real 환경에 배포해야 한다고 하자.deployment-alpha.yaml, deployment-beta.yaml, deployment-real.yaml 파일을 3개 복사해서 관리해야 한다.Helm은 이 문제를 템플릿(Template)과 설정값(Values)의 분리로 해결한다.
# deployment.yaml (Helm Template)
apiVersion: apps/v1
kind: Deployment
metadata:
name: { { .Values.appName } }
spec:
replicas: { { .Values.replicaCount } }# values-real.yaml
appNAme: api-real
replicaCount: 10helm install -f values-real.yamlMaven Repository에서 라이브러리를 가져오듯, 남들이 잘 만들어둔 k8s 설정(Redis, MySQL, Jenkins, Promethus 등)을 명령어 한 줄로 설치할 수 있다
apt-get install nginxhelm install my-nginx bitnami/nginx내가 처음부터 Nginx용 Service, Deployment, ConfigMap YAML을 짤 필요 없이, 검증된 패키지를 다운받아 설치만 하면 끝이다.