helm 쿠버네티스 패키지 매니저
: 쿠버네티스 워크로드를 하나로 묶어서 패키지 형태로 만들고, 배포하고, 설치할 수 있는 도구
-> 하나의 애플리케이션 구성이 최소 하나 이상의 파드와 서비스로 구성되어 있음을 생각해 봤을 때, 별개의 워크로드를 하나하나 적용하기보다는, 한 번에 여러 개의 워크로드가 즉시 배포된다면 간편할 것이다
차트, 저장소, 릴리스
- helm에서는 패키지를 차트라고 부름
- helm에서는 패키지가 저장되어 있는 공간을 저장소라고 부름
- 차트를 설치하여, 쿠버네티스 클러스터에 구동될 때, 차트의 인스턴스를 릴리스라고 부름
Hands-on: helm으로 Jenkins 설치하기
: Jenkins는 대표적인 설치형 CI 도구
: Jenkins 공식 홈페이지에서도 도커에 이어 두 번째로 쿠버네티스 상에서 helm으로 설치하는 방법을 안내할 만큼, 점차 helm은 쿠버네티스의 사실상의(de facto) 표준으로 자리 잡음.
공식 Jenkins 차트 설명을 따라 설치를 진행
- Get Repo Info : repository 정보를 업데이트하세요.
- Install Chart : helm install jk jenkins/jenkins 와 같이 설치, jk는 릴리스(인스턴스) 이름
- 터미널 출력에 나와있는 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 차트의 구성을 살펴보자. 디플로이먼트, 서비스 이렇게 단 두 개의 리소스로만 구성된 차트가 제공
차트를 만드는 원리는 간단
- /templates 디렉토리에 원하는 리소스 명세 파일을 적는다.
- 템플릿은 말 그대로 "뭔가 내용을 채워 넣어야" 하는 것으로, 빈칸(placeholder)을 곳곳에 삽입할 수 있다.
- 이 빈칸에는 릴리스 내용을 넣을 수도 있으며, 또는 값을 별도로 정의(values.yaml)해서 넣을 수도 있다.
이렇게 구성하면, 필요한 값을 채워 넣고 helm install 명령을 통해 쉽게 쿠버네티스 리소스를 애플리케이션 설치하듯 실행시킬 수 있다
현재 배포되고 있는 차트의 구성을 살펴볼 수도 있다. 앞서 설치한 Jenkins의 차트 구성을 살펴보면, 굉장히 많은 구성요소로 이루어져 있는 것을 확인할 수 있다.
- 공식 문서를 통해 본격적인 helm 차트 만들기 가이드가 제공
- hello world 차트를 만드는 예제. https://www.baeldung.com/ops/kubernetes-helm
'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 |