베하~~
안녕하세요 항상 웃음이 나는 픠식팀 입니다.
Helm
Kubernetes의 패키지 관리자로, 애플리케이션을 정의, 저장, 관리할 수 있게 해주는 도구이다.
Helm을 사용하면, Kubernetes 리소스들의 정의를 보다 쉽게 생성, 버전 관리, 공유 및 배포할 수 있다.
Helm Concepts
Chart
- Helm의 패키지
- 쿠버네티스 애플리케이션의 인스턴스를 생성하는데 필요한 정보의 모든 리소스 정의와 관련된 파일을 포함한다.
- 애플리케이션의 릴리즈하는데 사용
- YAML 파일의 모음
- 시각화를 쉽게하기 위해 헬름 차트는 도커 이미지 처럼 비교할 수 있다.
- 헬름에는 인기 있는 앱의 차트를 검색하고 공유할 수 있는 헬름 허브도 존재한다.
Config
- 릴리스 가능한 객체를 생성하기 위해 패키징된 차트로 병합될 수 있는 설정 정보를 가진다.
- Kubernetes 애플리케이션 릴리스에 명시된 구성이 포함되어 있다.
- Service, ingress, deployment 등을 위한 구성 혹은 Kafka, Vault, Nats 등 과 같은 특정 애플리케이션에 대한 구성이 될 수 있다.
- values.yaml은 값을 설정합니다. 설정된 값에 따라 차트 재사용을 위한 변수 대체값을 설정하게 됩니다
Release
- 차트의 구동중 인스턴스이며, 특정 설정이 결합 되어 있다.
- Helm 차트의 인스턴스로, Kubernetes 클러스터에 배포된 차트
- 하나의 차트는 클러스터에서 여러 번 배포될 수 있으며, 각 배포 마다 고유한 릴리즈가 생성된다.
Repository
- Repository는 차트를 모아두고 공유하는 장소
- 사용자는 공식 Helm 레포지토리에서 차트를 찾을 수 있고, 자체 레포지토리를 생성하여 차트를 관리할 수도 있다.
Helm Architecture
Helm2
사용자가 직접 사용할 수 있는 명령줄 인터페이스인 Helm Client와 쿠버네티스 클러스터 내부에서 실행되어서 Helm 클라이언트에서 오는 명령을 받아서 쿠버네티스 API 서버와 통신하는 역할인 틸러 서버로 구성되어 있습니다.
Helm Client
- 개발자가 로컬에서 차트 개발, 구성, 릴리즈, 레포지토리를 작업할 수 있는 명령줄 인터페이스를 제공
- 틸러 서버와 상호작용하여 차트, 릴리스를 사용한 설치, 업그레이드, 롤백, 삭제 등 다양한 작업을 할 수 있다.
- 현재 클러스터에서 실행중인 릴리스에 대한 정보를 요청할 수도 있다.
- helm 클라이언트는 golang으로 개발 되었고 gRPC를 이용해서 통신합니다.
Tiller Server
- 쿠버네티스 클러스터의 클러스터내 서버로, 헬름 클라이언트와 상호 작용하고 쿠버네티스 API 서버와 통신합니다.
- 헬름은 쿠버네티스 리소스에 대한 설치, 업그레이드, 쿼리 및 제거와 같은 작업을 통해 쿠버네티스를 쉽게 관리할 수 있다.
Helm3
Helm3의 아키텍처의 가장 큰 차이는 Triller Server의 유무 차이이다.
더 이상 사용하지 않고 Helm Client에서 바로 API 서버로 요청한다.
'IT KNOWLEDGE' 카테고리의 다른 글
[Youtube API] 동영상의 조회수와 좋아요 수 업데이트하기 (0) | 2023.10.11 |
---|---|
32비트와 64비트 (0) | 2023.10.06 |
[k8s] LimitRange (0) | 2023.09.27 |
[Youtube API] 동영상의 조회수와 좋아요 수 추출하기 (0) | 2023.09.25 |
많이 사용 되는 개발언어들과 그 개발언어들의 특징 (0) | 2023.09.15 |
댓글