helm 패키지 매니저

이준석·2023년 2월 16일
0

helm으로 패키징 하기


helm 쿠버네티스 패키지 매니저

우리는 이미 앞서 apt나 homebrew과 같이 애플리케이션 실행 파일을 제공하는 패키지 매니저, 혹은 npm과 같이 node.js 관련 모듈을 제공하는 패키지 매니저를 사용해 봤다.

helm은 쿠버네티스 워크로드를 하나로 묶어서 패키지 형태로 만들고, 배포하고, 설치할 수 있는 도구다.
즉, 쿠버네티스 패키지 매니저다.

하나의 애플리케이션 구성이 최소 하나 이상의 파드와 서비스로 구성되어있음을 생각해봤을 때, 별개의 워크로드를 하나하나 적용하기 보다는, 한번에 여러 개의 워크로드가 즉시 배포된다면 간편할 것이다.



차트, 저장소, 릴리즈

  • helm에서는 패키지를 차트라고 부른다.
  • helm에서는 패키지가 저장되어 있는 공간을 저장소라고 부른다.
  • 차트를 설치하고 쿠버네티스 클러스터에 구동될 때, 차트의 인스터스를 릴리즈라고 부른다.



Hands-on: helm으로 Jenkins 설치하기

Jenkins는 대표적인 설치형 CI 도구다.
Jenkins 공식 홈페이지에서도 도커에 이어 두번째로 쿠버네티스 상에서 helm으로 설치하는 방법을 안내할 만큼, 점차 helm은 쿠버네티스의 사실상의(de facto) 표준으로 자리잡았다.

공식 Jenkins 차트 설명을 따라 설치를 진행해보자. (ArtifactHub는 helm의 차트를 찾아볼 수 있는 사이트다.)

  1. Get Repo Info: repository 정보를 업데이트 해라.
helm repo add jenkins https://charts.jenkins.io
helm repo update
  1. Install Chart: helm install jk jenkins/jenkins와 같이 설치해라.
    jk는 릴리즈(인스턴스) 이름이다.
helm show values jenkins/jenkins > jenkins-values.yaml
helm install jk jenkins/jenkins -f jenkins-values.yaml
  1. 터미널 출력에 나와있는 NOTES에서 안내한 대로 암호를 획득하고, 포트 포워딩을 통해 서비스를 노출시키고, http://localhost:8080으로 접속한다.





helm 차트 구성

제공되는 hello-world 차트의 구성을 살펴보자.
디플로이먼트, 서비스 이렇게 단 두 개의 리소스로만 구성된 차트가 제공된다.

차트를 만드는 원리는 간단하다.

  1. /templates 디렉토리에 원하는 리소스 명세 파일을 적는다.

  2. 템플릿은 말 그대로 "뭔가 내용을 채워넣어야"하는 것으로 빈칸(placeholder)을 곳곳에 삽일할 수 있다.

  3. 이 빈칸에는 릴리즈 내용을 넣을 수도 있으며 또는 값을 별도로 정의(values.yaml)해서 넣을 수도 있다.

이렇게 구성하면 필요한 값을 채워넣고 helm install 명령을 통해 쉽게 쿠버네티스 리소스를 애플리케이션 설치하듯 실행시킬 수 있다.



레퍼런스

0개의 댓글