# kubernetes(k8s) 환경에 쉽게 배포 운영해주는 일종의 패키지(리소스) 매니져다.
# helm 은 charts(k8s 리소스 생성을 위한 설정들 모아놓은 패키지)를 관리하는 방식으로 사용된다.
# kubectl 설치하고
wget https://storage.googleapis.com/kubernetes-release/release/v1.16.0/bin/linux/amd64/kubectl
chmod +x kubectl
sudo cp kubectl /usr/local/bin
# kubectl config 로 context 를 설정해야 한다.
kubectl config set-credentials xxx
kubectl config set-cluster xxx
kubectl config set-context xxx
kubectl config use-context xxx
# 설치 - mac
brew install kubernetes-helm
# 설치 - linux
# github 에 이미 빌드된 helm binary 사용한다.
# https://github.com/helm/helm/releases
# 참고로 helm 서버와 버전이 호환되는 helm client 를 사용해야 한다.
wget https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz
tar zxvf helm-v2.16.1-linux-amd64.tar.gz
sudo cp linux-amd64 /usr/local/helm
# Error: incompatible versions 로 클라,서버 버전이 다른 경우
# helm 클라이언트를 서버 버전(2.14.1)으로 설치한다.
curl -L https://git.io/get_helm.sh | bash -s -- --version v2.14.1
# 초기화
# ~/.helm 을 셋팅한다.
helm init
# helm 으로 설치된 리스트
helm list -A
# 패키시 상태(Deployment, Service, Ingress...등)
helm status 이름
# helm chart 저장소 업데이트
helm update repo
# helm redis 설치
# 사용 가능한 redis chart 검색
helm search redis
# chart 상세보기
helm inspect stable/redis
# syntax 체크, -f value.yaml
# Error: incompatible versions 로 클라,서버 버전이 다른 경우
# helm 클라이언트를 서버 버전(2.14.1)으로 설치한다.
curl -L https://git.io/get_helm.sh | bash -s -- --version v2.14.1
# 초기화
# ~/.helm 을 셋팅한다.
helm init
# helm 으로 설치된 리스트
helm list -A
# 패키시 상태(Deployment, Service, Ingress...등)
helm status 이름
# helm chart 저장소 업데이트
helm update repo
# helm redis 설치
# 사용 가능한 redis chart 검색
helm search redis
# chart 상세보기
helm inspect stable/redis
# syntax 체크, -f value.yaml
helm lint stable/redis -f stable/values-dev.yaml
# 템플릿 렌더링 결과
helm template stable/redis -f stable/values-dev.yaml
# 설치 시뮬레이션, 디버그 메시지 출력
helm install stable/redis --name ysoftman-redis -n ysoftman-ns --dry-run --debug
helm install stable/redis --name ysoftman-redis -n ysoftman-ns --dry-run --debug
# 설치(redis 클러스터 구성시 다음 명령 실행 후 출력되는 NOTES 부분 참고)
helm install stable/redis --name ysoftman-redis -n ysoftman-ns
# 업데이트
# upgrade 에서는 --history-max 로 헬름으로 배포된 히스토리 내역 최대 개수 제한 할 수있다. 기본(256개)
helm upgrade ysoftman-redis stable/redis -n ysoftman-ns --history-max 3
# values.yaml 의 특정값을 변경해서 업데이트
helm upgrade ysoftman-redis stable/redis -n ysoftman-ns --set ysoftman.key1=aaa,ysoftman.key2=bbb
# NOTES 부분은 status 로 다시 볼 수 있다.
helm status ysoftman-redis
# history 보기
helm history ysoftman-redis
# 롤백
helm rollback ysoftman-redis 1
# 삭제, aliases: uninstall, del, delete, un
helm delete ysoftman-redis
# helm chart 다운로드
# helm chart 다운로드
helm pull vector/vector
or
helm fetch vector/vector
#####
# 커스텀 chart 만들기
# 참고 https://docs.bitnami.com/kubernetes/how-to/create-your-first-helm-chart/
# 기본 디렉토리와 파일들을 생성해 준다.
# 참고로 Go template 엔진을 사용한다.
helm create mychart
# mychart 내의 파일을 수정후 상위 디렉토리로 이동후 커스텀 chart 로 설치할 수 있다.
helm install ./mychart --name ysoftman-app
# helm 으로 관리되는(설치된) 리소스 보기
# k9s > helm 리소스로도 볼 수 있다.
kubectl get all -A -l='app.kubernetes.io/managed-by=Helm'
#####
# 차트 패키지로 만들기
helm package .
# 차트 패키지 업로드
curl -u "ysoftman:password" --data-binary "@ysoftman-0.1.0.tgz" http://ysoftman-chartmuseum:8080/api/charts
# 차트 패키지 삭제
curl -u "ysoftman:password" -X DELETE http://ysoftman-chartmuseum:8080/api/charts/ysoftman/0.1.0
# helm repo 추가
helm repo add ysoftman-chartmuseum http://ysoftman-chartmuseum:8080
# 설치
helm install ysoftman-chartmuseum/ysoftman
comments:
댓글 쓰기