본문 바로가기

컨테이너/Kubernetes

Kubernetes helm stable repository install 쉬운 방법!

Kubernetes helm 패키지 매니저에 대해서 알아보자.

쿠버네티스 위에서 동작하는 애플리케이션은 Deployment, Service, ConfigMap 과 같은 다양한 리소스의 조합으로 구성되어 있음.

 

애플리케이션을 배포할 때, 이러한 리소스들을 개별적으로 생성하지 않고 하나의 패키지로 묶어서 배포하는 것이 일반적.

 

 

Kubernetes helm이란?

- helm은 쿠버네티스 패키지 매니저로써 apt, yum, pip 툴과 비슷하다고 생각하면 된다.

- helm을 이용하면 쿠버네티스에 원하는 소프트웨어(패키지)를 손쉽게 설치할 수 있음!

- helm 패키지 또한 YAML 형식으로 구성되어 있으며 이것을 chart라고 부른다.

 

 

 

Kubernetes chart 구조

  • values.yaml : 사용자가 원하는 값들을 설정하는 파일
  • templates/ : 설치할 리소스 파일드이 존재하는 디렉터리

처음 templates의 각 설정 값들은 비워져 있으며 패키지가 설치되는 시점에 values.yaml에 있는 설정값들이 채워진다.

 

 

쿠버네티스 helm을 잘 활용하면 프로세스(Pod)와 네트워크(Service), 저장소(PersistentVolumes) 등 애플리케이션에서 필요한 모든 자원들을 외부로부터 가져올 수 있음

 

 

 

helm 설치

 

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash -s -- --version v3.2.2

 

 

 

 

chart 생성

 

helm create [CHART NAME]

 

 

  • Chart.yaml : chart 이름, 버전 정보 등 chart의 전반적인 정보
  • charts : chart 속에 또 다른 여러 chart들을 넣을 수 있음. 기본적으로는 비어있음.
  • templates/ : chart의 뼈대가 되는 쿠버네티스 리소스가 들어있는 폴더
  • values.yaml : 사용자가 정의하는 설정값을 가진 YAML 파일

 

 

helm chart 설치

 

먼저 values.yaml 파일의 service.type과 service.port를 수정

 

  • service.type : LoadBalancer
  • service.port : 8888

 

수정 후에 helm chart 설치

 

helm install [CHART_NAME] [CHART_PATH]

 

 

service를 조회해보자.

 

 

 

EXTERNAL-IP 가 생성되었음! 실제로 http://192.168.121.186:8888/ 로 url 입력을 하면 아래와 같은 화면이 뜬다.

 

 

** 만약 values.yaml과 templates 안의 템플릿 파일들이 합쳐진 결과 YAML을 확인하고 싶다면 아래의 명령을 통해 .yaml  파일을 따로 빼서 cat 명령어로 확인하면 된다.

 

 

helm template [HELM NAME] [CHART_PATH] > [YAML명].yaml

cat [YAML명].yaml

 

** chart의 values.yaml을 수정하고 싶으면 해당 내용 수정 후에 upgrade를 할 수 있음

 

helm upgrade [CHART_NAME] [CHART_PATH]

 

 

service.type을 LoadBalancer 에서 NodePort로 변경하니 EXTERNAL-IP가 사라진것을 확인할 수 있고 helm list를 조회해보면 REVISION이 2로 업데이트 된걸 확인할 수 있음

 

 

 

 

 

chart 관련 helm 명령어

 

# chart list 조회
helm list -n [NAMESPACE 명]

# chart 배포 상태 확인
helm status [CHART_NAME]

# chart 삭제
helm delete [CHART_NAME]

 

 

helm 원격 리파지토리(repository)

- helm에는 chart 원격 저장소인 리파지토리가 있음. 리파지토리에는 여러 chart를 한 곳에 묶어서 보관해놓을 수 있음

- 사용자가 온라인상에 제공되는 리파지토리를 추가하여 원격 저장소로부터 chart를 로컬 클러스터에 설치할 수 있음

 

 

[ helm repository 실습해보기 ]

 

- stable이라는 리파지토리를 추가해보자.

 

 helm repo add stable https://charts.helm.sh/stable

 

 

- 추가한 리파지토리의 인덱스 정보를 최신으로 업데이트!

(helm은 리파지토리를 기본적으로 캐싱해서 신규 chart를 설치하기 위해 업데이트 수행)

 

# 리파지토리 업데이트
helm repo update

# 리파지토리 조회
helm repo list

# 리파지토리 내 chart 조회
helm search repo [REPOSTIORY 명]

 

 

엄청많은 stable 리파지토리내의 chart들을 확인해 볼 수 있음..!!!!

 

아래의 주소에서 stable 리파지토리 외에 다양한 원격 저장소를 조회해볼 수 있음!

 

** helm 허브 주소 : https://artifacthub.io/

 

Artifact Hub

Find, install and publish Kubernetes packages

artifacthub.io