DevOps BootCamp/쿠버네티스

helm으로 패키징하기

cloudmaster 2023. 5. 23. 13:54

 

helm 쿠버네티스 패키지 매니저
 : 쿠버네티스 워크로드를 하나로 묶어서 패키지 형태로 만들고, 배포하고, 설치할 수 있는 도구
  -> 하나의 애플리케이션 구성이 최소 하나 이상의 파드와 서비스로 구성되어 있음을 생각해 봤을 때, 별개의 워크로드를 하나하나 적용하기보다는, 한 번에 여러 개의 워크로드가 즉시 배포된다면 간편할 것이다

 

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

 

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

 : Jenkins는 대표적인 설치형 CI 도구

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

 

공식 Jenkins 차트 설명을 따라 설치를 진행

  1. Get Repo Info : repository 정보를 업데이트하세요.
  2. Install Chart : helm install jk jenkins/jenkins 와 같이 설치, jk는 릴리스(인스턴스) 이름
  3. 터미널 출력에 나와있는 NOTES에 안내한 대로 암호를 획득하고, 포트 포워딩을 통해 서비스를 노출시키고, http://localhost:8080으로 접속
$ helm install jk jenkins/jenkins                                                                                       
NAME: jk
LAST DEPLOYED: Wed Apr 20 03:02:16 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get your 'admin' user password by running:
  kubectl exec --namespace default -it svc/jk-jenkins -c jenkins -- /bin/cat /run/secrets/chart-admin-password && echo
2. Get the Jenkins URL to visit by running these commands in the same shell:
  echo http://127.0.0.1:8080
  kubectl --namespace default port-forward svc/jk-jenkins 8080:8080

3. Login with the password from step 1 and the username: admin
...

 

포트 포워딩

 

Jenkins에 접속

 

 

helm 차트 구성

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

 

차트를 만드는 원리는 간단

  1. /templates 디렉토리에 원하는 리소스 명세 파일을 적는다.
  2. 템플릿은 말 그대로 "뭔가 내용을 채워 넣어야" 하는 것으로, 빈칸(placeholder)을 곳곳에 삽입할 수 있다.
  3. 이 빈칸에는 릴리스 내용을 넣을 수도 있으며, 또는 값을 별도로 정의(values.yaml)해서 넣을 수도 있다.

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

현재 배포되고 있는 차트의 구성을 살펴볼 수도 있다. 앞서 설치한 Jenkins의 차트 구성을 살펴보면, 굉장히 많은 구성요소로 이루어져 있는 것을 확인할 수 있다.

 

 

 

 

 

'DevOps BootCamp > 쿠버네티스' 카테고리의 다른 글

ArgoCD와 Kustomize를 이용해 kubernetes에 배포  (0) 2023.07.16
젠킨스 CI  (0) 2023.07.06
인그레스  (0) 2023.05.22
HealthCheck  (0) 2023.05.22
볼륨과 스테이트풀셋  (0) 2023.05.22