공부
-
[Helm] 가이드 - values(변수)공부/쿠버네티스&헬름 2025. 3. 15. 20:56
변수템플릿에서는 튜플이 자주 사용되지는 않지만 튜플을 사용하여 코드를 단순화하고 with와 range를 더 효과적으로 사용하는 방법을 살펴보겠습니다. {{- with .Values.favorite }} drink: {{ .drink | default "tea" | quote }} food: {{ .food | upper | quote }} release: {{ .Release.Name }} {{- end }}Release.Name은 with 블록에서 제한된 스코프 내에 있지 않습니다. 스코프 문제를 해결하는 한 가지 방법은 현재 스코프에 관계없이 접근할 수 있는 변수에 객체를 할당하는 것입니다.Helm 템플릿에서 변수는 다른 객체에 대한 명명된 참조입니다. $name 형태를 따릅니다. 변수는 특..
-
[Helm] 가이드 - Flow Control공부/쿠버네티스&헬름 2025. 3. 15. 20:33
Helm 템플릿에서 Flow Control은 템플릿이 어떻게 렌더링될지 제어하는 데 사용되는 구문 구조를 의미합니다. 이를 통해 조건부 로직, 반복문 등을 템플릿 내에 구현하여 유연하고 동적인 매니페스트 생성을 가능하게 합니다. Helm의 Flow Control은 Go 템플릿 언어를 기반으로 하며, 특정 액션(Actions)을 사용하여 정의됩니다.if/else조건문의 기본 구조는 다음과 같습니다.{{ if PIPELINE }} # Do something{{ else if OTHER PIPELINE }} # Do something else{{ else }} # Default case{{ end }}파이프라인을 사용하면 조건문과 비슷한 표현을 할 수 있습니다. 파이프라인은 다음의 경우 false로 평가..
-
[Helm] 가이드 - Functions와 Pipelines공부/쿠버네티스&헬름 2025. 3. 9. 20:57
.Values 객체에서 문자열을 템플릿에 삽입할 때 이러한 문자열을 따옴표로 묶어야 합니다. 템플릿 지시문에서 quote 함수를 호출하여 이를 수행할 수 있습니다.apiVersion: v1kind: ConfigMapmetadata: name: {{ .Release.Name }}-configmapdata: myvalue: "Hello World" drink: {{ quote .Values.favorite.drink }} food: "{{ quote .Values.favorite.food }}" water: "{{ .Values.favorite.water }}"위와 같이 진행한다면 “drink” , “food”, water 와 같이 출력됩니다.파이프라인템플릿 언어의 강력한 기능 중 하나는 파이프라인..
-
[Helm] 가이드 - Built-in 객체공부/쿠버네티스&헬름 2025. 3. 9. 20:41
템플릿 엔진은 객체를 템플릿으로 전달합니다. 그리고 코드는 객체를 주고받을 수 있습니다(with와 range 문을 살펴볼 때 예시를 볼 수 있습니다). 나중에 보게 될 tuple 함수와 같이 템플릿 내에서 새 객체를 생성하는 몇 가지 방법도 있습니다.객체는 단순하여 하나의 값만 가질 수 있습니다. 또는 다른 객체나 함수를 포함할 수도 있습니다. 예를 들어, Release 객체는 여러 객체(예: Release.Name)를 포함하고 Files 객체는 몇 가지 함수를 가지고 있습니다.이전 섹션에서 {{ .Release.Name }}을 사용하여 릴리스 이름을 템플릿에 삽입했습니다. Release는 템플릿에서 액세스할 수 있는 최상위 객체 중 하나입니다.Release: 릴리스 자체를 설명하는 객체Release.N..
-
[Helm] 토픽 - Chart Hooks와 Chart Test공부/쿠버네티스&헬름 2025. 3. 9. 20:33
Chart HooksHelm은 차트 개발자가 릴리스의 수명 주기에서 특정 시점에 개입할 수 있도록 훅(hook) 메커니즘을 제공합니다. 훅을 사용하면 다음과 같은 작업을 수행할 수 있습니다.다른 차트가 로드되기 전에 설치 중에 ConfigMap 또는 Secret을 로드새 차트를 설치하기 전에 데이터베이스를 백업하는 Job을 실행하고 업그레이드 후 데이터를 복원하는 두 번째 Job을 실행릴리스를 삭제하기 전에 Job을 실행하여 서비스를 제거하기 전 서비스를 정상적으로 로테이션에서 제거합니다.hook은 일반 템플릿처럼 작동하지만 Helm이 다르게 활용하도록 하는 특수 어노테이션이 있습니다.사용 가능한 hookAnnotation Value설명pre-install템플릿이 렌더링된 후, Kubernetes에서 리..
-
[Helm] 토픽 - Label과 Annotation공부/쿠버네티스&헬름 2025. 3. 4. 00:55
다음 조건에 해당하는 메타데이터는 label로 설정해야 합니다.쿠버네티스에서 리소스를 식별하는 데 사용되는 경우시스템을 쿼리할 목적으로 운영자에게 노출하는 것이 유용한 경우예를 들어, helm.sh/chart: NAME-VERSION label을 사용하여 운영자가 특정 차트의 모든 인스턴스를 편리하게 찾을 수 있도록 하는 것이 좋음쿼리에 사용되지 않는 메타데이터는 어노테이션으로 설정해야 합니다. Helm hooks는 항상 어노테이션으로 설정됩니다.label을 사용하여 리소스를 식별하고 쿼리할 수 있도록 하고 쿼리에 사용되지 않는 메타데이터는 어노테이션으로 설정하여 불필요한 label 남용을 방지합니다. 또한 Helm hooks는 어노테이션으로 관리하여 다른 메타데이터와 구분합니다.standard labe..
-
[Helm] 토픽 - 템플릿과 Values.yaml공부/쿠버네티스&헬름 2025. 3. 4. 00:48
Helm Chart 템플릿은 Go 템플릿 언어로 작성되며 Sprig 라이브러리의 다양한 템플릿 함수와 특수 함수들이 추가적으로 제공됩니다.모든 템플릿 파일은 차트의 templates/ 폴더에 저장됩니다. Helm은 차트를 렌더링할 때 이 폴더의 모든 파일을 템플릿 엔진을 통해 처리합니다.템플릿 values 제공 방식은 두가지 방법으로 제공합니다.values.yaml 파일차트 개발자는 values.yaml 파일을 통해 기본값을 제공할 수 있습니다.사용자 정의 values 파일차트 사용자는 사용자 정의 값을 담은 YAML 파일을 제공할 수 있습니다.이 파일은 helm install 명령어를 통해 전달됩니다.사용자 정의 값은 values.yaml 파일의 기본값을 재정의합니다.템플릿 파일템플릿 파일은 Go 템플..
-
[Helm] 토픽 - Chart.yaml공부/쿠버네티스&헬름 2025. 3. 3. 23:56
차트 파일 구조Helm 차트는 특정 구조를 가진 디렉토리 내 파일들의 집합으로 구성됩니다. 이 디렉토리 구조는 Helm이 차트를 올바르게 인식하고 처리하는 데 필수적입니다. 다음은 Helm 차트 디렉토리 구조에 대한 설명입니다.디렉토리 이름은 차트의 이름과 동일해야 합니다. 예를 들어, WordPress 차트는 wordpress/ 디렉토리에 위치합니다. 버전 정보는 디렉토리 이름에 포함되지 않습니다.wordpress/ Chart.yaml # A YAML file containing information about the chart LICENSE # OPTIONAL: A plain text file containing the license for the chart ..
-
[Helm] Helm 설치공부/쿠버네티스&헬름 2025. 3. 3. 23:11
Helm 설치Helm(이하 헬름)을 성공적으로 설치하려면 다음과 같은 전제 조건이 필요합니다.쿠버네티스 클러스터설치를 위해 어떤 보안 구성을 사용할 것인지 결정하기(필요시)헬름 설치 및 구성맥OS 기준으로 설치는 homebrew를 사용하면 간단합니다.$ brew install helmHelm 사용하기주요 개념 3가지Helm은 쿠버네티스 애플리케이션의 패키지 관리 도구로 다음 세 가지 핵심 개념을 중심으로 작동합니다.차트 (Chart)쿠버네티스 애플리케이션을 구성하는 모든 리소스 정의(YAML 파일)를 담고 있는 패키지쿠버네티스에서의 Homebrew 포뮬러, Apt dpkg, YUM RPM 파일과 유사하게 애플리케이션 배포에 필요한 모든 요소를 묶어 제공저장소 (Repository)Helm 차트를 모아두고..
-
[Helm] Helm이란공부/쿠버네티스&헬름 2025. 3. 3. 22:42
Helm이란Helm은 쿠버네티스(Kubernetes) 애플리케이션의 패키지 관리 도구입니다. 복잡한 쿠버네티스 애플리케이션을 쉽게 설치, 업그레이드, 관리할 수 있도록 도와주며, 쿠버네티스 환경에서의 소프트웨어 배포를 간소화합니다.왜 Helm을 써야될까Helm은 쿠버네티스 애플리케이션의 배포와 관리를 단순화하고 효율적으로 만들어주는 강력한 도구이기 때문입니다.Helm을 사용하지 않고도 쿠버네티스의 배포나 관리가 가능하지만 다음과 같이 번거로움이 있습니다.구체적으로는 다음과 같습니다.복잡한 쿠버네티스 애플리케이션 관리 단순화쿠버네티스 애플리케이션은 다양한 리소스(Pod, Service, Deployment 등)로 구성되며, 이들을 개별적으로 관리하는 것은 매우 복잡한데 Helm은 이러한 리소스들을 차트(C..