Agile&DevOps/helm

0. helm 정의 및 설치

Happy@Cloud 2019. 9. 7. 15:32

Helm은 컨테이너를 쉽게 설치할 수 있도록 돕는 툴입니다.

컨테이너 배포에 필요한 Container Image, Volume, 환경설정등을 정의한 helm chart를 통해 빠르고 쉽게 배포하게 해 줍니다.

helm은 CLI인 helm을 이용하여 kubernetes Control Plane node의 API Server에 요청하여 배포를 수행합니다.

따라서, helm CLI를  실행하는 장비(PC/베어메탈/VM등)에 kubernetes cluster 인증 정보를 담고 있는 kubenetes configuration파일(보통 .kube/config 파일)이 있어야 합니다.

Jenkins와 같은 CI/CD툴에서 CD파트(컨테이너 배포 부분)에 helm을 이용할 수 있습니다.

아래는 Helm Chart 구조와 배포 yaml을 생성하는 예시입니다. 

이 예시를 보시면 위 Helm Architecture를 쉽게 이해하실 수 있을것입니다.  

1. client설치

1) 다운로드 주소 구하기

https://github.com/helm/helm/releases

OS에 맞는 설치하고자 하는 버전의 주소를 클립보드에 복사합니다. 

 

2) 설치 디렉토리 생성, 설치파일 다운로드 

설치할 디렉토리를 만들고, 이동한 후 설치파일을 다운로드 합니다. 

아래 예에서는 Linux용 3.7.1버전을 다운로드 했습니다. 

$ mkdir -p ~/install/helm && cd ~/install/helm
$ wget https://get.helm.sh/helm-v3.7.1-linux-amd64.tar.gz

 

3) 설치

압축을 해제하고, 실행파일 'helm'을 PATH가 설정된 디렉토리로 복사합니다. 

$ tar xvf helm-v3.7.1-linux-amd64.tar.gz
$ cd linux-amd64
$ cp helm /usr/local/bin

4) 설치 확인

$ helm version

* ubuntu에서는 아래와 같이 간단히 최신 버전을 설치할 수 있습니다.

# snap install helm --classic

 

TIP

helm init에서 에러가 나는 경우 원인별로 아래와 같이 조치하세요.

1) kube-proxy와 통신이 안되는 경우 : 에러메시지에 'socat '라는 말이 나올거임

-> apt-get install socat -y 설치 후 재실행

2) 아래 에러 메시지가 나면서 설치가 안되는 경우: kubernetes v1.16부터 일부 API를 지원하지 않기 때문입니다.

Error: error installing: the server could not find the requested resource

아래 링크를 참조하여 조치하십시오.

https://happycloud-lee.tistory.com/68