우리는 이미 앞서 apt나 homebrew과 같이 애플리케이션 실행 파일을 제공하는 패키지 매니저, 혹은 npm과 같이 node.js 관련 모듈을 제공하는 패키지 매니저를 사용해 봤다.
helm은 쿠버네티스 워크로드를 하나로 묶어서 패키지 형태로 만들고, 배포하고, 설치할 수 있는 도구다.
즉, 쿠버네티스 패키지 매니저다.
하나의 애플리케이션 구성이 최소 하나 이상의 파드와 서비스로 구성되어있음을 생각해봤을 때, 별개의 워크로드를 하나하나 적용하기 보다는, 한번에 여러 개의 워크로드가 즉시 배포된다면 간편할 것이다.
Jenkins는 대표적인 설치형 CI 도구다.
Jenkins 공식 홈페이지에서도 도커에 이어 두번째로 쿠버네티스 상에서 helm으로 설치하는 방법을 안내할 만큼, 점차 helm은 쿠버네티스의 사실상의(de facto) 표준으로 자리잡았다.
공식 Jenkins 차트 설명을 따라 설치를 진행해보자. (ArtifactHub는 helm의 차트를 찾아볼 수 있는 사이트다.)
helm repo add jenkins https://charts.jenkins.io
helm repo update
helm install jk jenkins/jenkins
와 같이 설치해라.jk
는 릴리즈(인스턴스) 이름이다.helm show values jenkins/jenkins > jenkins-values.yaml
helm install jk jenkins/jenkins -f jenkins-values.yaml
제공되는 hello-world 차트의 구성을 살펴보자.
디플로이먼트, 서비스 이렇게 단 두 개의 리소스로만 구성된 차트가 제공된다.
차트를 만드는 원리는 간단하다.
/templates
디렉토리에 원하는 리소스 명세 파일을 적는다.
템플릿은 말 그대로 "뭔가 내용을 채워넣어야"하는 것으로 빈칸(placeholder)을 곳곳에 삽일할 수 있다.
이 빈칸에는 릴리즈 내용을 넣을 수도 있으며 또는 값을 별도로 정의(values.yaml
)해서 넣을 수도 있다.
이렇게 구성하면 필요한 값을 채워넣고 helm install
명령을 통해 쉽게 쿠버네티스 리소스를 애플리케이션 설치하듯 실행시킬 수 있다.