Top

헬름 배우기 [효율적인 쿠버네티스 애플리케이션 관리]

  • 원서명Learn Helm: Improve productivity, reduce complexity, and speed up cloud-native adoption with Helm for Kubernetes (ISBN 9781839214295)
  • 지은이앤드류 블록(Andrew Block), 오스틴 듀이(Austin Dewey)
  • 옮긴이이준
  • ISBN : 9791161755359
  • 33,000원
  • 2021년 06월 30일 펴냄
  • 페이퍼백 | 392쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 클라우드 컴퓨팅

책 소개

소스 파일은 아래 깃허브 페이지에서 다운로드하실 수 있습니다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

쿠버네티스 환경에서 실행되는 애플리케이션을 효율적으로 관리하기 위한 도구로 헬름을 소개하고 핵심 개념에 대한 간략한 소개로 시작한다. 그리고 이해를 돕기 위해 헬름 차트의 다양한 사용 사례를 보여주며 엔터프라이즈 환경에 적용할 수 있도록 자동화, 보안 등을 추가로 설명한다. 헬름의 기초를 배우고 엔터프라이즈 환경에서 활용하는 방법을 배울 수 있는 좋은 지침서가 될 것이다.

이 책에서 다루는 내용

■ 헬름을 사용해 쿠버네티스 환경에서 엔터프라이즈 자동화 전략 개발
■ 쉽게 사용하고 구성할 수 있는 헬름 차트 생성
■ 오케스트레이션 도구 및 쿠버네티스 오퍼레이터에서 헬름 사용
■ 애플리케이션 제공 및 라이프사이클 관리를 위한 모범 사례 확인
■ 기업에 적합하며, 안전하고 안정적인 방식으로 헬름 활용
■ 헬름을 통한 자동화의 세부 내용 확인

이 책의 대상 독자

쿠버네티스 환경에서 애플리케이션 배포를 자동화할 수 있는 헬름 학습에 관심이 있는 쿠버네티스 개발자나 관리자를 대상으로 한다. 쿠버네티스 애플리케이션 개발 관련 기본 지식은 유용하겠지만 헬름에 대한 사전지식은 필요로 하지 않는다. 자동화가 제공할 수 있는 비즈니스 사용 사례의 사전 지식에 대한 학습을 권장한다.

이 책의 구성

1장, ‘쿠버네티스와 헬름 이해’에서는 쿠버네티스와 헬름을 소개한다. 쿠버네티스 애플리케이션을 배포할 때 사용자가 직면할 수 있는 문제와 헬름이 구현을 단순화하고 생산성을 높이는 데 어떻게 도움이 되는지 소개한다.
2장, ‘쿠버네티스 및 헬름 환경 준비’에서는 로컬 쿠버네티스 클러스터에 애플리케이션을 배포하는 데 필요한 도구를 살펴보고 설치한 후 수행할 수 있는 기본적인 헬름 구성을 알아본다.
3장, ‘첫 번째 헬름 차트 설치’에서는 헬름 차트를 설치해 쿠버네티스에 애플리케이션을 배포하는 방법을 설명하고, 헬름을 통해 배포된 애플리케이션의 다른 수명주기 단계를 다룬다.
4장, ‘헬름 차트 이해’에서는 헬름 차트 빌딩 블록을 좀 더 깊게 살펴보고 자신만의 헬름 차트를 작성하는 데 필요한 사전지식을 학습한다.
5장, ‘첫 번째 헬름 차트 빌드’에서는 헬름 차트를 빌드하는 엔드 투 엔드(end-to-end) 연습을 제공한다. 5장은 기본적인 헬름 구조를 활용하는 헬름 차트의 기본 개념으로 시작해 좀 더 진보된 헬름 구조로 통합하기 위해 기본 구성을 수정하는 단계로 진행된다. 마지막으로 기본 차트 리포지토리에 차트를 배포하는 방법을 알아본다.
6장, ‘헬름 차트 테스트’에서는 헬름 차트에 대한 정적 검사 및 테스트를 수행할 수 있는 다양한 방법론을 설명한다.
7장, ‘CI/CD 및 깃옵스를 사용한 헬름 프로세스 자동화’에서는 CI/CD 및 깃옵스(GitOps) 모델을 활용해 헬름 작업을 자동화하는 사용 사례를 살펴본다. 헬름 차트 테스트, 패키징 및 릴리스에 대한 프로세스를 개발한다. 또한 다양한 환경에서의 헬름 차트 설치 및 관리 방법도 소개한다.
8장, ‘오퍼레이터 프레임워크와 함께 헬름 사용’에서는 오퍼레이터 프레임워크에서 제공하는operator-sdk 도구를 사용해 기존의 헬름 차트에서 헬름 오퍼레이터를 구축하기 위한 쿠버네티스 오퍼레이터의 기본적인 개념을 설명한다.
9장, ‘헬름 보안 고려사항’에서는 도구를 설치하는 순간부터 쿠버네티스 클러스터에 헬름 차트를 설치할 때까지 헬름 사용에 관한 보안 고려사항과 주의사항을 설명한다.

저자/역자 소개

지은이의 말

현재 컨테이너화(containerization)는 데브옵스(DevOps)를 구현하는 가장 좋은 방법이라고 한다. 도커(Docker)가 컨테이너 기술을 소개하고 데브옵스 시대를 변화시켰지만, 구글은 컨테이너 오케스트레이션 분야의 리더로 간주되는 광범위한 컨테이너 오케스트레이션 시스템인 쿠버네티스(Kubernetes)를 개발했다. 주요 목표는 헬름을 사용해 쿠버네티스 환경에서 실행되는 애플리케이션을 관리하는 효율성을 알아보는 것이다. 헬름에 대한 간략한 소개로 시작해 전체 컨테이너 환경에서 얻을 수 있는 이점을 소개한다. 그런 다음 헬름 차트와 이용 사례를 학습하고 아키텍처 측면에서 좀 더 깊게 살펴볼 것이다. 또한 쿠버네티스에서 애플리케이션 배포를 자동화하기 위해 헬름 차트를 작성하는 방법을 학습한다. 헬름 및 자동화를 중심으로 엔터프라이즈 환경에 적용할 수 있는 패턴을 제공하는 데 초점을 맞추고 헬름을 통한 애플리케이션 개발, 배포, 수명주기 관리까지 포함하고 있다. 이 책의 끝부분에서는 애플리케이션 배포에 대한 통찰력이 있는 엔터프라이즈 패턴을 개발하기 위해 헬름을 활용할 수 있는 방법을 알게 될 것이다.

지은이 소개

앤드류 블록(Andrew Block)

레드햇의 시니어 프린시플 컨설턴트(senior principal consultant)로 다양한 배포 환경에 자동화 원칙을 사용해서 컨테이너 솔루션 및 마이크로서비스 아키텍처를 채택하는 방법을 조직에 안내했다. 『Application Release Strategies with Openshift』의 저자로 소프트웨어를 좀 더 빨리 개발하고 배포하기 위해 보안에 중점을 둔 CI/CD 방법론의 중요성을 소개하고 있다. 또한 레드햇 내에서 컨테이너 생태계에 대한 인식을 높이는 것을 목표로 하는 학습 공동체(Community of Practice)의 관리자 역할을 담당하고 있다.

오스틴 듀이(Austin Dewey)

레드햇의 시니어 컨설턴트로 클라우드 및 컨테이너 기술 분야에서 고객을 지원하는 데 주력하고 있다. 그는 레드햇의 쿠버네티스 기반 PaaS인 오픈시프트 컨테이너 플랫폼(OpenShift Container Platform)에 대한 CI/CD 및 배포 패턴 관련 전문 지식으로 다양한 포춘 500대 기업의 성공을 이끌어냈다. 데브옵스 및 자동화를 중심으로 프로젝트를 제공하는 그는 빠르고 안정적이며 안전한 배포를 보장하는 파이프라인을 구축해 다양한 고객을 운영 환경으로 안내했다. 업무 외에는 기타를 연주하고 야외에서 시간을 보내는 것을 즐긴다.

옮긴이의 말

쿠버네티스가 컨테이너화된 애플리케이션의 자동 배포 및 스케일링 등 많은 이점을 가져다주면서 국내외에서 오픈소스 기반 컨테이너 오케스트레이션 플랫폼인 쿠버네티스를 도입하는 기업이 빠르게 증가하고 있다. 이에 따라 컨테이너로 애플리케이션을 빌드하고 이를 여러 환경의 쿠버네티스 클러스터에 배포하는 경우가 많아졌다. 하지만 여러 환경에 애플리케이션 배포에 따른 설정 관리 및 구성 절차의 복잡성 때문에 대다수의 사용자가 어려움을 겪고 있다. 이를 해결하기 위한 방안으로 배포환경에 따라 달라지는 설정값만 정의해둔 다음 이에 따라 배포하는 방법을 제공하는 것이 바로 쿠버네티스에서 헬름과 차트다. 헬름은 쉽게 말해 CentOS의 yum, Ubuntu의 apt와 같은 쿠버네티스의 패키지 관리 도구이며 차트는 사전에 정의된 쿠버네티스의 리소스 패키지다. 개발자는 헬름을 통해 차트로 정의된 쿠버네티스 애플리케이션을 다양한 테스트 환경 및 운영 환경에 쉽게 설치하고 업그레이드할 수 있어 이에 소비되는 시간을 줄여 개발자가 개발에 집중할 수 있는 환경을 만들 수 있다. 이 책은 헬름에 대한 기본 개념부터 실제 운영 환경에 적용해 프로세스 자동화를 구축할 수 있는 CI/CD 및 깃옵스의 개념까지 설명한다. 복잡한 쿠버네티스 애플리케이션 배포 및 업그레이드 프로세스 효율화에 관심을 갖고 동참할 수 있기를 바란다.

옮긴이 소개

이준

경희대학교 컴퓨터공학과를 졸업하고 동 대학원에서 네트워크 분야 석사 학위를 받았다. 졸업 후 네트워크 장비 개발 업체에서 소프트웨어 개발자로 근무하며 경력을 쌓았다. 현재 기아자동차에 재직 중이며 주로 커넥티드카 서비스를 위한 클라우드 인프라 및 플랫폼 설계 업무를 담당했다. 오픈스택, 쿠버네티스, 이스티오 등 클라우드 관련 기술에 관심을 갖고 있으며 번역서로 『개발자를 위한 쿠버네티스』(에이콘, 2019), 『Go 프로그래밍 개발 환경에서 의존성 주입 실습』(에이콘, 2020), 『쿠버네티스 시작하기』(에이콘, 2020)가 있다.

목차

목차
  • 1부. 소개 및 설정

  • 1장. 쿠버네티스와 헬름 이해
    • 모놀리식부터 현대 마이크로서비스까지
    • 쿠버네티스란 무엇인가?
      • 컨테이너 오케스트레이션
      • 고가용성
      • 확장성
      • 활성화된 커뮤니티
    • 쿠버네티스 애플리케이션 배포
      • 디플로이먼트
      • 서비스
      • 영구 볼륨 요청
    • 리소스 관리에 대한 접근
      • 명령형 및 선언형 구성
    • 리소스 구성 문제
      • 다양한 타입의 쿠버네티스 리소스
      • 라이브 및 로컬 상태로 동기화 상태로 유지
      • 애플리케이션 수명주기 관리의 어려움
      • 정적인 리소스 파일
    • 구원이 될 헬름!
  • 패키지 매니저 이해
  • 쿠버네티스 패키지 매니저
    • 추상화된 쿠버네티스 리소스의 복잡성
    • 동적으로 구성된 선언형 리소스
    • 로컬 상태와 라이브 상태 간의 일관성
    • 지능형 배포
    • 자동화된 수명주기 훅
  • 요약
  • 더 읽을거리
  • 평가 문제

  • 2장. 쿠버네티스 및 헬름 환경 준비
    • 기술 요구사항
    • 미니쿠베를 사용한 로컬 쿠버네티스 환경 준비
      • 미니쿠베 설치
      • 버추얼박스 설치
      • 지정된 하이버파이저로 버추얼박스 구성
      • 미니쿠베 리소스 할당 구성
      • 기본 사용법 확인
    • kubectl 설정
      • kubectl 설치
        • 미니쿠베를 통한 kubectl 설치
        • 미니쿠베 없이 kubectl 설치
        • 패키지 매니저 사용
        • 링크에서 직접 다운로드
    • 헬름 설정
      • 헬름 설치
      • 상위 리포지토리 추가
      • 플러그인 추가
      • 환경 변수
      • 탭 완성
      • 인증
      • 인가/RBAC
    • 요약
    • 더 읽을거리
    • 평가 문제

  • 3장. 첫 번째 헬름 차트 설치
    • 기술 요구사항
    • 워드프레스 애플리케이션 이해
    • 워드프레스 차트 찾기
      • 명령행을 통한 워드프레스 차트 검색
      • 브라우저에서 워드프레스 차트 보기
      • 명령행에서 워드프레스 차트 정보 보기
    • 쿠버네티스 환경 만들기
    • 워드프레스 차트 설치
      • 구성을 위한 values 파일 생성
      • 설치 실행
      • 릴리스 검사
    • 추가 설치 정보
      • -n 플래그
      • HELM_NAMESPACE 환경 변수
      • --set과 –values 중 선택
    • 워드프레스 애플리케이션에 접근
    • 워드프레스 릴리스 업그레이드
      • 헬름값 수정
      • 업그레이드 실행
      • 업그레이드 중 값 재사용 및 재설정
    • 워드프레스 릴리스 롤백
      • 워드프레스 이력 검사
      • 롤백 실행
    • 워드프레스 릴리스 삭제
    • 환경 정리
    • 요약
    • 더 읽을거리
    • 평가 문제

  • 2부. 헬름 차트 개발

  • 4장. 헬름 차트 이해
    • 기술 요구사항
    • YAML 형식 이해
    • 키-값 쌍 정의
      • 값 타입
        • JSON 형식
        • 헬름 차트 구조
    • 차트 템플릿 이해
      • Go 템플릿 작성
        • 값 및 내장 객체를 통한 필드의 매개변수화
        • values.schema.json 파일
        • 흐름 제어를 통한 세분화된 템플릿 처리
        • 템플릿 변수
        • 함수 및 파이프라인을 사용한 복잡한 처리
        • 명명된 템플릿으로 코드 재사용 활성화
        • 라이브러리 차트
        • CR 템플릿
    • 차트 정의 이해
      • 필수 필드
      • 선택적 메타데이터
      • 차트 디펜던시 관리
      • 디펜던시 다운로드
      • 조건부 디펜던시
      • 자식 차트에서 값 재정의 및 참조
      • import-values를 통한 값 가져오기
    • 수명주기 관리
      • 헬름 훅의 기본사항
      • 훅 실행
      • 고급 훅 개념
    • 헬름 차트 문서화
      • README.md 파일
      • LICENSE 파일
      • templates/NOTES.txt 파일
    • 헬름 차트 패키징
    • 요약
    • 더 읽을거리
    • 평가 문제

  • 5장. 첫 번째 헬름 차트 빌드
    • 기술 요구사항
    • 방명록 애플리케이션 이해
    • 환경 설정
    • 방명록 헬름 차트 생성
      • 초기 파일 구조 스캐폴딩
      • 차트 정의 평가
      • 레디스 차트 디펜던시 추가
        • 레디스 차트 디펜던시 다운로드
      • values.yaml 파일 수정
        • 레디스 차트를 구성하기 위한 값 추가
        • 방명록 프론트엔드 배포를 위한 값 수정
      • 방명록 차트 설치
    • 방명록 헬름 차트 개선
      • 사전 업그레이드 및 사전 롤백 수명주기 훅 생성
        • 데이터 스냅샷 생성을 위한 사전 업그레이드 훅 생성
        • 데이터베이스 복원을 위한 사전 롤백 훅 생성
        • 수명주기 훅 실행
      • 입력 유효성 검사 추가
        • fail 함수 사용
        • required 함수 사용
    • 방명록 차트를 차트 리포지토리에 게시
      • 차트 리포지토리 생성
      • 방명록 헬름 차트 게시
      • 차트 리포지토리 추가
    • 정리
    • 요약
    • 더 읽을거리
    • 평가 문제

  • 6장. 헬름 차트 테스트
    • 기술 요구사항
    • 환경 설정
    • 헬름 템플릿 확인
      • 헬름 템플릿을 사용해 로컬에서 템플릿 생성 유효성 검사
        • 템플릿 매개변수화 테스트
        • 제어 동작 테스트
        • 함수 및 파이프라인 테스트
        • 차트 렌더링에 서버 측 유효성 검사 추가
      • 헬름 차트 및 템플릿 정적 검사
    • 라이브 클러스터 환경에서 테스트
      • 차트 테스트 생성
      • 차트 테스트 실행
    • 차트 테스팅 프로젝트를 통한 차트 테스트 개선
      • 차트 테스팅 프로젝트 소개
      • 차트 테스팅 도구 설치
      • 차트 테스팅 lint-and-install 명령 실행
    • 정리
    • 요약
    • 더 읽을거리
    • 질문

  • 3부. 고급 배포 패턴

  • 7장. CI/CD 및 깃옵스를 사용한 헬름 프로세스 자동화
    • 기술 요구사항
    • CI/CD 및 깃옵스 이해
      • CI/CD
      • 깃옵스를 사용하여 CI/CD 한 단계 업그레이드
    • 환경 설정
    • 헬름 차트를 빌드하기 위한 CI 파이프라인 생성
      • 파이프라인 설계
      • 젠킨스 이해
      • 젠킨스 설치
      • 파이프라인 이해
      • 파이프라인 실행
    • 헬름을 사용해 애플리케이션을 배포하기 위한 CD 파이프라인 생성
      • 파이프라인 설계
      • 환경 업데이트
      • 파이프라인 이해
      • 파이프라인 실행
    • 정리
    • 요약
    • 더 읽을거리
    • 평가 문제

  • 8장. 오퍼레이터 프레임워크와 함께 헬름 사용
    • 기술 요구사항
    • 쿠버네티스 오퍼레이터 이해
    • 헬름 오퍼레이터 생성
      • 환경 설정
        • 퀘이 리포지토리 생성
        • 로컬 개발 환경 준비
      • 오퍼레이터 파일 구조 스캐폴딩
      • 오퍼레이터 빌드 및 퀘이로 푸시
      • 방명록 오퍼레이터 배포
      • 방명록 애플리케이션 배포
    • 헬름을 사용하여 오퍼레이터 및 CR 관리
    • 쿠버네티스 환경 정리
    • 요약
    • 더 읽을거리
    • 평가 문제

  • 9장. 헬름 보안 고려사항
    • 기술 요구사항
    • 데이터 출처 및 무결성
      • GPG 키 쌍 생성
      • 헬름 다운로드 확인
    • 헬름 차트 서명 및 확인
    • 안전한 헬름 차트 개발
      • 안전한 이미지 사용
      • 리소스 제한 설정
      • 헬름 차트에서의 시크릿 처리
    • RBAC 규칙 구성
    • 안전한 차트 리포지토리 접근
    • 요약
    • 더 읽을거리
    • 평가 문제

  • 부록. 평가 문제 해답
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안