
Kubernetes의 패키지 관리자 Helm 소개
2022-06-01 last update
7 minutes reading Conceptual Kubernetes소개
Kubernetes에 응용 프로그램을 배치하는 것은 매우 복잡할 수 있습니다.단일 응용 프로그램을 설정하려면 POD, 서비스, 배치, 복사 집합 등 서로 의존하는 Kubernetes 자원을 여러 개 만들어야 합니다. 모든 자원은 상세한 YAML 목록 파일을 작성해야 합니다.
Helm은 Kubernetes의 패키지 관리자로 개발자와 운영자가 응용 프로그램과 서비스를 더욱 쉽게 패키지, 설정, 배치할 수 있도록 한다.
Helm은 현재 Kubernetes의 공식 프로젝트이자 Cloud Native Computing Foundation의 일부분이다. 이것은 비영리 조직으로 Kubernetes 생태계 내부와 주변의 개원 프로젝트를 지원한다.
본고에서 우리는 Helm와 Kubernetes에 응용 프로그램을 배치하는 데 사용되는 각종 추상적인 것들을 개괄할 것이다.쿠버네트스의 초보자라면 우선 An Introduction to Kubernetes을 읽어 기본 개념을 익히는 데 도움이 될 것입니다.
Helm 개요
대부분의 프로그래밍 언어와 운영체제는 소프트웨어를 설치하고 유지하는 데 도움을 주는 자체 패키지 관리자를 가지고 있다.Helm은 Debian의
apt
또는 Python의 pip
과 같은 많은 패키지 관리자와 같은 기본 기능 집합을 제공합니다.키통:
helm
은 모든 Helm 기능에 사용자 인터페이스를 제공합니다.tiller
, helm
의 명령을 정탐하고 집단의 소프트웨어 버전의 설정과 배치를 처리합니다.도표
Helm 패키지는 차트라고 불리며, 몇 개의 YAML 프로필과 일부 템플릿으로 구성되어 있으며, 이 템플릿들은 Kubernetes 목록 파일로 표시됩니다.다음은 차트의 기본 디렉토리 구조입니다.
차트 디렉토리 예
package-name/
charts/
templates/
Chart.yaml
LICENSE
README.md
requirements.yaml
values.yaml
이러한 디렉토리와 파일에는 다음과 같은 기능이 있습니다.requirements.yaml
동적 링크 의존 항목을 사용하는 것이 가장 좋다.values.yaml
및 명령줄)과 조합되어 Kubernetes 목록에 나타나는 템플릿 파일을 포함합니다.템플릿은 Go programming language’s template format을 사용합니다.helm
명령은 로컬 디렉터리나 이 디렉터리 구조의 .tar.gz
패키지 버전에서 도표를 설치할 수 있습니다.이 포장된 도표도 도표 저장소나repos에서 자동으로 다운로드하고 설치할 수 있다.다음은 도표 저장소를 볼 것입니다.
차트 저장소
Helm chart repo는
index.yaml
파일과 .tar.gz
패키지 차트를 제공하는 간단한 HTTP 사이트입니다.helm
명령은 하위 명령으로 차트를 압축하고 필요한 index.yaml
파일을 만드는 데 사용할 수 있습니다.이 파일들은 GitHub 페이지와 같은 모든 웹 서버, 대상 저장 서비스, 정적 사이트 호스트에서 서비스를 제공할 수 있다.Helm은 stable이라는 기본 차트 저장소를 미리 설정했습니다.이 환매 협의는
https://kubernetes-charts.storage.googleapis.com
에 있는 구글 메모리 통을 가리킨다.안정적인 환매의 출처는 the helm/charts Git repository on GitHub이다.helm repo add
명령을 사용하여 예비 재구매를 추가할 수 있습니다.일부 유행하는 대체 저장소는 다음과 같습니다.차트 구성
차트는 일반적으로
values.yaml
파일에 기본 구성 값을 가집니다.일부 응용 프로그램은 기본값을 사용하여 완전히 배치할 수 있지만, 일반적으로 사용자의 요구를 충족시키기 위해 설정을 덮어써야 합니다.구성을 위해 공개된 값은 차트 작성자에 의해 결정됩니다.어떤 것은 Kubernetes 원어를 설정하는 데 사용되고, 어떤 것은 응용 프로그램 자체를 설정하기 위해 끝까지 용기를 전달할 수 있다.
다음은 샘플 값의 일부입니다.
가치관아마르
service:
type: ClusterIP
port: 3306
Kubernetes 서비스 리소스를 구성하는 옵션입니다.helm inspect values chart-name
덤프 차트의 사용 가능한 모든 구성 값을 사용할 수 있습니다.자신의 YAML 파일을 작성하여
helm install
을 실행할 때 사용하거나 명령줄에 --set
플래그를 사용하여 이 값을 덮어쓸 수 있습니다.기본값을 변경할 값을 지정하기만 하면 됩니다.특정 설정으로 배치된 키맵을 방출이라고 합니다.이어서 우리는 발행판을 토론할 것이다.
발표하다
차트를 설치하는 동안 Helm은 사용자가 지정한 구성 및
value.yaml
의 기본값과 차트 템플릿을 결합합니다.이것들은 Kubernetes 목록으로 나타나고 Kubernetes API를 통해 배치됩니다.이것은 특정한 도표의 발표, 특정한 설정과 배치를 만들 것이다.이 개념을 발표하는 것은 매우 중요하다. 왜냐하면 집단에 같은 응용 프로그램을 여러 번 배치하기를 원할 수도 있기 때문이다.예를 들어, 서로 다른 MySQL 서버를 여러 개 구성해야 할 수 있습니다.
차트의 다른 인스턴스를 개별적으로 업그레이드해야 할 수도 있습니다.아마도 한 응용 프로그램이 MySQL 서버를 업데이트할 준비가 되어 있을 것입니다. 그러나 다른 응용 프로그램은 아직 준비가 되지 않았습니다.Helm을 사용하면 각 버전을 개별적으로 업그레이드할 수 있습니다.
도표가 업데이트되었거나 이 버전의 설정을 업데이트하려고 하기 때문에 어떤 버전을 업그레이드할 수 있습니다.어떤 방식으로든 업그레이드할 때마다 새 버전이 만들어집니다. Helm을 사용하면 문제가 발생하지 않도록 이전 버전으로 쉽게 롤백할 수 있습니다.
차트 만들기
배포 중인 소프트웨어의 기존 그래프를 찾을 수 없으면 자신의 그래프를 만들어야 할 수도 있습니다.Helm은 차트 디렉토리의 scaffold를
helm create chart-name
으로 출력할 수 있습니다.이것은 우리가 지난 절에서 토론한 파일과 디렉터리를 포함하는 폴더를 만들 것입니다.여기서 차트의 메타데이터를
Chart.yaml
에 작성하고 templates
디렉토리에 Kubernetes 목록 파일을 넣어야 합니다.그런 다음 목록에서 관련 설정 변수를 추출하여 values.yaml
에서 추출한 다음 the templating system을 사용하여 목록 템플릿에 포함해야 합니다.helm
명령에는 테스트, 포장, 도표 제공을 돕는 많은 하위 명령이 있습니다.자세한 내용은 the official Helm documentation on developing charts을 참조하십시오.결론
본고에서 우리는 Kubernetes의 패키지 관리자 Helm을 되돌아봤다.우리는 Helm 구조와
helm
및 tiller
구성 요소를 개괄하고 Helm 도표 형식을 상세하게 소개하며 도표 저장소를 보았다.우리는 키맵을 어떻게 설정하는지, 그리고 어떻게 설정과 도표를 조합하여 Kubernetes 집단의 버전으로 배치하는지 연구했다.마지막으로 우리는 적당한 도표가 없을 때 도표를 만드는 기초 지식을 토론했다.Helm에 대한 자세한 내용은 the official Helm documentation을 참조하십시오.Helm의 공식 차트를 찾으려면 the official helm/charts Git repository on GitHub을 참조하십시오.