구름DGU 스터디 3주차 - Helm

박민기·2024년 10월 1일

구름 DGU 스터디 3주차 - Helm

개요

Helm은 그냥 npm같은 개념이라고 생각하고 있는데 이게 정말 맞는 것인지 세미나를 들으면서 알아 가고 싶습니다.

스터디 전 스몰토크 📢

이제 좀 친해져서 서로 말을 편하게 하게 된 것 같아서 좋아요

챕터 1: Kubernetes 복습

핵심 개념

  • 쿠버네티스(Kubernetes): 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 플랫폼입니다. 복잡한 컨테이너 오케스트레이션 작업을 단순화하여 개발자와 운영팀의 효율성을 높여줍니다.
  • kubectl: 쿠버네티스 클러스터를 제어하고 관리하기 위한 명령줄 도구입니다. kubectl을 사용하여 파드 생성, 서비스 노출, 로그 확인 등 다양한 작업을 수행할 수 있습니다.
  • Namespace: 클러스터 내 리소스를 논리적으로 분리하는 데 사용됩니다. 서로 다른 팀이나 프로젝트가 같은 클러스터를 공유할 때, Namespace를 통해 리소스를 격리하고 관리할 수 있습니다.
  • cgroup: 컨테이너 또는 프로세스 그룹이 사용할 수 있는 CPU, 메모리 등의 자원을 제한하는 데 사용됩니다. cgroup을 통해 특정 컨테이너가 과도한 자원을 사용하여 다른 컨테이너에 영향을 주는 것을 방지할 수 있습니다.

왜 쿠버네티스를 사용하는가?

  • 쿠버네티스는 다음과 같은 이점을 제공하여 현대적인 애플리케이션 개발 및 운영에 필수적인 도구로 자리 잡았습니다.

  • 확장성: 애플리케이션의 부하에 따라 자동으로 파드를 추가하거나 제거하여 효율적인 자원 활용을 가능하게 합니다.

  • 고가용성: 여러 노드에 파드를 분산 배치하고, 장애 발생 시 자동으로 복구하여 애플리케이션의 가용성을 높입니다.

  • 셀프 힐링: 파드 또는 노드 장애를 감지하고 자동으로 복구하여 시스템의 안정성을 유지합니다.

  • 선언적 구성: YAML 파일을 통해 원하는 시스템 상태를 정의하면, 쿠버네티스가 자동으로 해당 상태를 유지합니다.

챕터 2: Helm 소개

Helm이란 무엇인가?

  • Helm은 쿠버네티스 애플리케이션의 패키징, 배포, 관리를 단순화하는 패키지 관리자입니다. 복잡한 쿠버네티스 YAML 파일들을 관리하는 어려움을 해결하고, 애플리케이션 배포 과정을 간소화합니다.

Helm의 핵심 구성 요소

  • Chart: Helm 패키지의 기본 단위입니다. 애플리케이션을 구성하는 쿠버네티스 리소스들의 템플릿과 설정 정보를 포함합니다.
  • Repository: Chart를 저장하고 공유하는 저장소입니다. Helm 클라이언트는 Repository에서 Chart를 검색하고 다운로드할 수 있습니다.
  • Release: Chart를 특정 쿠버네티스 클러스터에 설치한 인스턴스입니다. Release는 고유한 이름과 버전을 가지며, 업그레이드 또는 롤백이 가능합니다.

Helm을 사용하는 이유

  • 재사용성: Chart를 통해 애플리케이션 구성을 템플릿화하고, 다른 환경에 쉽게 재사용할 수 있습니다.
    버전 관리: Release를 통해 애플리케이션의 배포 버전을 관리하고, 필요에 따라 이전 버전으로 롤백할 수 있습니다.
  • 의존성 관리: Chart 간의 의존성을 관리하여 복잡한 애플리케이션을 효율적으로 배포할 수 있습니다.
  • 커뮤니티: Helm은 활발한 커뮤니티를 통해 다양한 Chart를 제공하고, 사용자 지원을 제공합니다.

챕터3: 실습

minikube를 사용해서 helm 사용해보기

  • 직접 클러스터를 만들어보고 파트를 생성해보면서 지난번 실습때 제대로 아쉬웠던 부분을 많이 보강할 수 있었던 것 같습니다.
  • 또한 심화 학습을 할 수 있는 링크를 첨부하여 향후 공부 방향성을 제시했던 것이 도움이 되었습니다.

스터디 후기

  • 비유법을 많이 사용해서 설명을 해주셨는데 이해하는데 너무 좋았습니다. 마스터노드를 정부, 노드들을 토지로 비유해주어 저도 다른사람에게 설명할 때 비유법을 통해 이해를 쉽게 할 수 있도록 세미나를 해보고 싶어졌습니다.
profile
밍기적거리지 않기

0개의 댓글