공대생 정리노트

Helm 본문

Kubernetes

Helm

woojinger 2021. 5. 3. 22:28

참고자료

sktelecom-oslab.github.io/Virtualization-Software-Lab/Helm/

 

Helm : The Kubernetes Package Manager

공지: 블로그가 다음 주소로 이전되었습니다. https://openinfradev.github.io/

sktelecom-oslab.github.io

helm.sh/ko/docs/topics/architecture/

 

헬름 아키텍처

헬름 아키텍처를 개괄적으로 설명한다.

helm.sh

lsjsj92.tistory.com/582

 

kubernetes helm 이란? - helm 사용법(kubernetes 배포/관리하기)

포스팅 개요 이번 포스팅은 kubernetes(쿠버네티스)의 package managing인 helm에 대해서 알아봅니다. 흔히 helm chart라고도 불리우는 helm에 대해서 간략히 알아보고, 어떻게 사용하는지를 간단한 예제 즉,

lsjsj92.tistory.com

helm.sh/docs/topics/charts/

 

Charts

Explains the chart format, and provides basic guidance for building charts with Helm.

helm.sh


Helm?

도커 : 컨테이너 플랫폼 중 하나(rkt와 같은 플랫폼도 있다)로 가장 성공적인 컨테이너 플랫폼

쿠버네티스 : 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있게 해주는 소프트웨어 시스템. 컨테이너 오케스트레이션 시스템

Helm : 쿠버네티스 패키지를 관리하는 도구. 여기서 쿠버네티스 패키지는 chart라고 하며 새로운 chart를 생성하거나 chart repository와 상호작용 등을 할 수 있다

 

Helm Chart

Helm chart는 쿠버네티스 리소스들의 related set을 의미하는 파일 collection이다.

chart는 한 개의 파드를 나타낼수도, 엄청 복잡한 웹 어플리케이션을 나타낼 수도 있다.

다음 구조는 공식 document의 예이다

wordpress/
  Chart.yaml          # A YAML file containing information about the chart
  LICENSE             # OPTIONAL: A plain text file containing the license for the chart
  README.md           # OPTIONAL: A human-readable README file
  values.yaml         # The default configuration values for this chart
  values.schema.json  # OPTIONAL: A JSON Schema for imposing a structure on the values.yaml file
  charts/             # A directory containing any charts upon which this chart depends.
  crds/               # Custom Resource Definitions
  templates/          # A directory of templates that, when combined with values,
                      # will generate valid Kubernetes manifest files.
  templates/NOTES.txt # OPTIONAL: A plain text file containing short usage notes

디렉토리에 있는 각 파트의 자세한 내용은 공식 document에 잘 나와 있다.(helm.sh/docs/topics/charts/)

Helm Architecture

출처 : https://sktelecom-oslab.github.io/Virtualization-Software-Lab/Helm/

Helm Client

엔드 유저용 명령줄 클라이언트이다.

로컬 차트 개발, repository 관리, release 관리, 헬름 라이브러리와 인터페이스 제공을 맡는다.

 

헬름 라이브러리는 쿠버네티스 API 서버에 대한 인터페이스 역할을 한다

  • 릴리즈 빌드 위해 차트와 configuration 결합
  • 쿠버네티스에 차트를 설치, 릴리즈 객체 제공
  • 쿠버네티스와 상호작용해 업그레이드 및 uninstall

Tiller Server

Helm Server. 쿠버네티스 위헤 pod 형태로 위치한다

 

 Helm Client가 gRPC 프로토콜을 이용해 tiller와 통신한다.

사용자가 chart 배포를 요청하면 tiller는 chart를 render해서 쿠버네티스 객체 정보를 정의하는 manifest 정보를 만든다.

이 manifest 파일을 쿠버네티스 API 서버를 통해 쿠버네티스에 앱을 배포한다.

Comments