반응형
helm search 차트 찾기
# 1. Helm Hub에서 검색
helm search hub workpress
# 2. Local에 추가된 저장소에서 검색
helm search repo
- helm search hub는 여러 저장소들에 있는 헬름 차트들을 포괄하는 helm hub 를 검색합니다.
- helm search repo는 helm repo add를 사용하여 로컬 헬름 클라이언트에 추가된 저장소들을 검색한다. 검색은 로컬 데이터 상에서 이루어지며, 퍼블릭 네트워크 접속이 필요하지 않습니다.
helm install
# 1. 패키지 설치
helm install happy-panda stable/mariadb
# 2. 상태 확인
helm status happy-panda
# 3. 릴리스 제거
helm uninstall happy-panda
Helm Chart
mychart/
Chart.yaml
values.yaml
charts/
templates/
...
- templates 디렉토리는 템플릿 파일을 위한 것이다.
- 헬름이 차트를 평가할 때, templates/ 디렉토리의 모든 파일을 템플릿 렌더링 엔진으로 전달한다. 그리고 나서 처리 결과를 모아 쿠버네티스로 보낸다.
- values.yaml 파일은 차트의 기본값 을 포함한다.
- 이 값들은 helm install 또는 helm upgrade 하는 중에 사용자가 재정의할 수 있다.
- Chart.yaml 파일은 차트에 대한 설명을 포함한다.
- 템플릿 안에서 접근할 수 있다. charts/ 디렉토리는 다른 차트(하위차트 라고 함)를 포함 할 수도 있다.
실습
mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mt-configmap
data:
mv: "hello"
./mychart에 있는 파일로 helm chart 만들기
# 1. configmap만 보내기
helm install full-coral ./mychart
# 2. 전송된 템플릿 확인하기
helm get manifest full-coral
Release Name으로 리소스 이름 지정하기
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
mv: "hello"
helm install kylo-serval ./mychart
### kylo-serval-configmap 으로 생성됨
Values.yaml
# 1. -f
helm install -f myvals.yaml ./mychart
# 2. --set
helm install --set favoriteDrink=coffee ./mychart
- -f : 사용할 values.yaml 파일을 지정할 수 있습니다.
- --set : 차트에 적용할 변수를 설정할 수 있습니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
mv: "hello"
drink: {{ .Values.favoriteDrink }}
pipeline
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
mv: "hello"
drink: {{ .Values.favoriteDrink | quote }}
- quote: 문자열 처리 (”” 추가해줌)
helm create
helm create foo(NAME)
주어진 이름으로 새로운 차트를 생성합니다.
차트에 사용되는 공통 파일 및 디렉토리와 함께 차트 디렉터리를 생성합니다.
foo/
├── .helmignore # 헬름 차트를 패키징할 때 무시할 패턴 포함
├── Chart.yaml # 차트에 대한 정보
├── values.yaml # 템플릿의 기본값
├── charts/ # 이 차트가 의존하는 차트
└── templates/ # 템플릿 파일
└── tests/ # 테스트 파일
필요없는 templates 파일 제거하기
rm -rf templates/*
configmap.template 생성
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
data:
myvalue: "Hello World"
- name 을 리소스 안에 하드 코딩하는 것은 좋지 않은 관행으로 간주된다.
- name은 릴리스에 고유해야 하며, 릴리스 이름을 삽입하여 이름 필드를 생성하는 것이 좋다.
- 하드 코딩 → {{ .Release.Name }}
Helm 템플릿에서 값은 namespace 객체로 생각할 수 있으며, 값을 호출할 때 (.)점을 사용하여 단계별로 접근할 수 있습니다.
ex) Values.image.repository
Helm에 전달된 values.yaml을 참조합니다.
Release 앞에 점은 해당 Scope의 최상위 네임스페이스부터 시작한다는 것을 의미합니다.
helm install --debug --dry-run guppy ./mychart
- —dry-run : 해당 옵션을 통해 차트 생성 대신 랜더링 된 템플릿을 출력받아 확인할 수 있습니다.
helm get manifest clunky
- 위 명령어를 통해 서버에 업로드된 쿠버네티스 리소스를 모두 출력합니다.
참고자료
반응형
'Infra > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 컨테이너 및 파드에 메모리, CPU 할당 - 리소스 제한을 안하면 생기는 문제 (2) | 2024.10.03 |
---|---|
[K8S] Kubernetes Job, CronJob 이해 및 활용법 (0) | 2024.09.27 |
[Kubernetes] 쿠버네티스 ReplicaSet, Deployment 리소스 차이 이해하기 (0) | 2024.07.25 |
[Kubernets] 쿠버네티스 주요 특징 4가지 - Ingress, Service 로드밸런싱 차이 이해하기 (0) | 2024.07.25 |
[K8S] Argo CD 및 GitHub으로 Kubernetes 애플리케이션을 쉽고 빠르게 자동 배포하는 방법 (0) | 2024.05.20 |