왜 수많은 회사들이 DevOps와 클라우드 네이티브 전략을 위해 GitOps를 채택하고 있을까? 이 안정적인 프레임워크는 쿠버네티스에 애플리케이션을 배포하는 표준 방법으로 빠르게 자리잡고 있다. DevOps 엔지니어, 개발자, IT 아키텍트, 그리고 SRE 들은 이 실용적이고 개발자 중심적인 책을 통해 GitOps 실천에 유용한, 다양한 예제를 경험할 수 있을 것이다. 두 저자는 애플리케이션 현대화, CI/CD, 자동화에 대한 다년간의 경험을 바탕으로, GitOps를 활용하여 성공적으로 애플리케이션을 개발하고 배포하기 위해 알아야 할 모든 단계를 소개한다. 이 책에서 다루는 예제들을 활용하면 쿠버네티스 개발 주기 관리에서 한 발 앞서 나갈 수 있을 것이다.
Contents
1장 소개
1.1 GitOps란?
1.2 왜 GitOps인가?
1.3 쿠버네티스 CI/CD
1.4 쿠버네티스에 GitOps를 접목한 앱 배포 방법
1.5 데브옵스 및 기민성
2장 실습 준비
2.1 컨테이너 레지스트리에 등록
2.2 Git 저장소 등록
2.3 로컬 쿠버네티스 클러스터 생성
3장 컨테이너
3.1 도커를 사용한 컨테이너 빌드
3.2 도커가 필요 없는 Jib을 사용한 컨테이너 빌드
3.3 빌다를 사용한 컨테이너 빌드
3.4 빌드팩을 통한 컨테이너 빌드
3.5 십라이트와 카니코를 사용한 쿠버네티스 기반 컨테이너 빌드
3.6 맺으며
4장 커스터마이즈
4.1 커스터마이즈를 사용한 쿠버네티스 리소스 배포
4.2 커스터마이즈를 활용한 컨테이너 이미지 업데이트
4.3 커스터마이즈를 통한 임의의 쿠버네티스 필드 업데이트
4.4 다중 환경 배포
4.5 커스터마이즈를 통한 ConfigMap 생성
4.6 맺으며
5장 헬름
5.1 헬름 프로젝트 생성
5.2 템플릿 간 코드 공유
5.3 컨테이너 이미지 갱신
5.4 헬름 차트 패키징 및 배포
5.5 저장소에 보관된 차트 배포
5.6 의존성을 가진 차트 배포
5.7 자동 롤링 업데이트
5.8 맺으며
6장 클라우드 네이티브 CI/CD
6.1 텍톤 설치
6.2 “Hello World” Task
6.3 Git 저장소에 보관된 앱 코드를 컴파일하고 패키징하는 Task
6.4 비공개 Git 저장소의 앱을 컴파일하고 패키징하는 Task
6.5 텍톤 Task와 빌다를 통한 애플리케이션 컨테이너 생성
6.6 텍톤 Task를 통한 쿠버네티스 애플리케이션 배포
6.7 텍톤 파이프라인을 통한 앱 빌드 및 쿠버네티스 배포
6.8 텍톤 트리거를 사용한 Git 변경 사항 자동 컴파일 및 패키징
6.9 커스터마이즈로 쿠버네티스 리소스를 갱신하고 Git에 푸시
6.10 헬름을 사용한 쿠버네티스 리소스 업데이트 및 PR 생성
6.11 GitHub 액션을 통한 CI 구현
7장 Argo CD
7.1 Argo CD를 사용한 애플리케이션 배포
7.2 자동 동기화
7.3 커스터마이즈 연동
7.4 헬름 연동
7.5 이미지 갱신
7.6 비공개 Git 저장소 배포
7.7 쿠버네티스 매니페스트 배포 순서
7.8 동기화 윈도 정의
8장 고급 주제
8.1 민감한 데이터 암호화(봉인된 시크릿)
8.2 ArgoCD로 시크릿 암호화(Argo CD + 하시코프 볼트 + 외부 시크릿)
8.3 애플리케이션 자동 배포 트리거(Argo CD 웹훅)
8.4 여러 클러스터에 배포
8.5 클러스터에 PR 배포
8.6 고급 배포기법 사용
Author
나탈리 빈토,알렉스 소토 부에노,이병준
IT/ICT 분야에서 10년 이상 경력을 가진 소프트웨어 엔지니어로, 통신 및 리눅스 운영체제 전문가다. 자바 개발 경험을 바탕으로 레드햇(Red Hat)에서 OpenShift EMEA 전문 솔루션 아키텍트로 근무했다. 현재는 레드햇의 선임 개발 지원 엔지니어로, 커뮤니티와 고객 들이 쿠버네티스(Kubernetes) 및 클라우드 네이티브 기술로 성공적으로 전환할 수 있도록 돕는 역할을 맡고 있다. 『Modernizing Enterprise Java』(O’Reilly)를 공동 집필했다.
IT/ICT 분야에서 10년 이상 경력을 가진 소프트웨어 엔지니어로, 통신 및 리눅스 운영체제 전문가다. 자바 개발 경험을 바탕으로 레드햇(Red Hat)에서 OpenShift EMEA 전문 솔루션 아키텍트로 근무했다. 현재는 레드햇의 선임 개발 지원 엔지니어로, 커뮤니티와 고객 들이 쿠버네티스(Kubernetes) 및 클라우드 네이티브 기술로 성공적으로 전환할 수 있도록 돕는 역할을 맡고 있다. 『Modernizing Enterprise Java』(O’Reilly)를 공동 집필했다.