템플릿은 GitOps 기반 자동화에 필수적입니다.
게시 됨: 2022-05-27목차
GitOps 기반 자동화
Kubernetes는 컨테이너화된 애플리케이션의 확장 및 관리 용이성으로 유명해졌습니다. 이를 통해 전체 애플리케이션 수명 주기 동안 노드, 조각, 컨테이너, 서비스 및 구성 맵을 정렬하고 관리할 수 있습니다. 스크립트를 통해 이러한 유연성과 제어를 달성하기가 어려웠습니다.
그러나 인프라에 대한 Kubernetes의 발표 접근 방식 덕분에 모든 수준에서 정밀 변경을 정의할 수 있습니다. Kubernetes를 사용하면 여러 도구를 통합하여 컨테이너에 대한 자동화된 계획, 배포 및 모니터링을 용이하게 할 수 있습니다.
이러한 도구 중 하나는 Kubernetes 서클뿐만 아니라 GitOps 에코시스템에서도 인기를 얻고 있는 CNCF 채택 자동화 프레임워크인 Helm입니다. 이 게시물에서는 Helm이 Kubernetes 및 GitOps를 통해 클라우드 네이티브 애플리케이션을 자동화하는 데 어떻게 도움이 되는지 살펴보겠습니다.
투구란?
패키지 관리자로 설명되지만 Helm은 Kubernetes 애플리케이션의 설치, 배포, 업그레이드 및 관리를 자동화하기 위한 강력한 도구입니다. Kubernetes 선언문 관리는 시스템 전반에서 점점 더 복잡해지고 있는 작업입니다. 단일 정렬에는 중복된 여러 YAML 파일과 하드코드 값이 필요합니다. Kubernetes는 간단한 패키징 형식을 통해 YAML 파일을 관리할 수 있는 더 나은 방법이 필요했으며, 이는 helm 차트로 이어졌습니다. 그러나 Helm의 목적은 템플릿을 넘어서는 것입니다.
차트
Helm 차트는 Kubernetes 애플리케이션에 사용할 수 있는 단위입니다. 각 차트에는 파일, 메타데이터 및 애플리케이션 인프라가 포함될 수 있습니다. Go로 작성된 차트는 연관된 변수, 버전 및 설명과 함께 특정 템플릿 디렉토리에 저장됩니다. 이러한 차트를 저장소에 아카이브로 저장하면 재사용을 위해 개발 팀 전체에서 공유할 수 있습니다.
차트 사본이 Kubernetes 클러스터에 설치되면 이를 출력이라고 합니다. 여러 번 발생할 수 있는 차트를 사용할 때마다 새 릴리스가 생성됩니다. 간행물은 차트를 모니터링하고 설치하는 데 도움이 됩니다.
다음은 Helm으로 작업할 때 알아야 할 몇 가지 중요한 규칙입니다.
Chart.YAML: 차트에 대한 설명이 포함된 기본 파일
Values.YAML: 차트의 기본값을 포함하는 파일
차트: 하위 차트가 있는 디렉토리
템플릿: 템플릿으로 정의된 Kubernetes 소스 디렉토리
템플릿
템플릿 폴더는 Helm의 핵심 기능입니다. 여기에는 클러스터에 적용되는 애플리케이션의 구성 파일이 포함됩니다. 템플릿 디렉토리의 파일은 values.YAML에서 값을 호출합니다.
왜 헬름인가?
Helm은 다음과 같은 이점을 제공하므로 지속적인 배포 환경에 큰 가치를 더합니다.
향상된 생산성:
Helm(Flux와 같은 다른 정렬 도구와 함께)을 사용하면 단일 버튼 또는 단일 명령으로 소프트웨어를 정렬할 수 있습니다. 이렇게 하면 팀이 소프트웨어 개발에만 집중할 수 있습니다.
프로세스를 더 쉽게 만듭니다.
차트 개념을 사용하면 개발, 테스트 및 프로덕션 파이프라인 또는 다른 팀의 워크플로에서 동일한 차트를 복사할 수 있습니다. 이렇게 하면 문제가 크게 줄어듭니다.
측정:
차트는 확장성을 용이하게 하는 Kubernetes 클러스터 아키텍처에 맞게 설계되었습니다.
쉬운 철수:
Helm은 모든 릴리스를 관리하므로 문제가 발생할 때 쉽게 변경할 수 있습니다.
GitOps는 Helm과 Flux를 모두 활용합니다.
Helm은 복잡한 릴리스를 관리하고 측정할 때 간단하게 유지할 수 있습니다. 그러나 변경 사항이 점진적으로 도입됨에 따라 Helm은 Kubernetes 클러스터를 업데이트하기 위한 추가 도구가 필요합니다.
Flux는 Helm과 전체 Kubernetes 클러스터 및 유틸리티 사양이 정의되는 모든 중요한 Git 저장소 간의 다리 역할을 하기 때문에 Helm을 위한 탁월한 필러 솔루션입니다.
Flux는 GitOps 모델을 기반으로 하는 배포 자동화 솔루션으로, Git을 모든 변경 사항의 시작점이자 실제 소스로 만듭니다. Flux를 사용하면 코드 저장소와 Kubernetes 클러스터 간의 일관성을 유지할 수 있고 코드 변경이 도입될 때 정렬을 자동화할 수 있습니다.
간단히 말해 Flux Helm은 Git에서 Kubernetes 클러스터로 차트를 동기화하여 차트 릴리스를 자동화합니다.
Flux는 Helm과 어떻게 작동합니까?
Flux를 GitOps 연산자로 사용하려면 Git 저장소에 YAML 파일 및 Kubernetes 사용자 지정 리소스와 함께 모든 Helm 차트를 저장합니다. 또한 이러한 소스의 변경되지 않는 이미지를 컨테이너 레지스트리에 넣습니다.
'Pull' 요청으로 Git을 변경하면 Flux가 저장소를 확인하고 필요한 리소스를 제공합니다. 그런 다음 변경 사항이 프로덕션 클러스터에 통합됩니다. 이것은 물론 프로세스를 단순화하고 흡연 테스트 또는 SRE 관련 변경 승인과 같은 더 많은 작업을 수행할 수 있지만 지금은 간단하게 유지하겠습니다.
Flux 2와 Helm이 함께 작동하여 유휴 시간을 줄이면서 속도와 안정성을 높이는 방법에 대해 자세히 알아보려면 Scott Rigby의 이 YouTube 강연을 확인하세요.
결론
Helm은 Kubernetes 실행의 어려움을 크게 줄입니다. 차트 또는 템플릿 개념으로 GitOps 파이프라인에 큰 가치를 추가합니다. 즉, 템플릿 이외의 다른 요구 사항, 즉 종단 간 배포 자동화가 있습니다. 여기에서 Flux(또는 Flux에 내장된 Weave GitOps)와 같은 도구가 조타 장치를 사용하는 데 필요합니다. 또한 Magalix와 유사한 솔루션은 Helm 릴리스가 호환되고 안전한지 확인합니다.
Weave KitApps는 Kubernetes를 대규모로 관리할 수 있는 지속적 제공 솔루션입니다. 이를 통해 모든 회사에서 GitOps를 쉽게 채택하고 구현할 수 있습니다. Weave GitOps는 'gitops install'과 같은 명령으로 기능 클러스터를 단순화하여 GitOps를 활성화하고 'gitops add app'을 애플리케이션에 추가합니다. 이러한 명령은 배포 자동화와 관련된 복잡한 기본 작업을 추상화합니다. Weave GitOps는 Helm, Flux, Magalix 등을 포함한 전체 GitOps 파이프라인을 함께 제공하므로 시간을 낭비하지 않고 GitOps를 시작할 수 있습니다.
Amazon-seller-in-easy-steps가 되는 방법
디지털 마케팅 케이터링