Description
Argo CD는 쿠버네티스 클러스터에서 선언적인 깃옵스 워크플로를 제공하는 대표적인 도구로, 깃 리포지터리를 기반으로 애플리케이션 배포와 관리를 자동화하는 역할을 한다.

Argo CD의 아키텍처와 동작원리를 살펴보고, IaC 도구 또는 다양한 방법을 통해 Argo CD 클러스터를 구현해보면서 학습할 수 있도록 구성된 책이다. Argo CD를 운영하는 어드민 담당자에게 필요한 고가용성 설정, 사용자 접근 통제, 보안 강화 방법과 문제 해결에 대한 내용이 담겨 있다. 또한 개발자나 엔지니어에게는 Argo CD를 통한 배포 파이프라인을 설계하는 방법과 YAML을 좀 더 효율적으로 작성하는 방법이 도움이 될 것이다. 이 책의 내용을 바탕으로 Argo CD를 실무에 적용해 보길 바란다.
저자

리비우코스테아,스피로스이코노마키스

저자:리비우코스테아
2000년초개발자로시작해개발자에서코딩설계자로,그리고팀장부터CTO까지다양한역할을수행했다.2012년작은회사의데브옵스(DevOps)직군으로전환했으며,기존의전통적인방식으로는확장의한계를느껴파이프라인과자동화작업을담당했다.
2018년에는플랫폼팀을시작으로Mambu릴리스팀의기술책임자가돼깃옵스방식을채택해대부분의지속적인통합/지속적인배포(CI/CD,ContinuousIntegration/ContinuousDeployment)파이프라인을설계했다.2019년부터ArgoCD를도입했다.최근에는깃옵스채택을계획하고있는유망한스타트업인주니(Juni)에합류했다.ArgoCD를포함한OSS프로젝트에기여한공로로2020년8월에CNCF앰버서더(ambassador)로임명됐다.

저자:스피로스이코노마키스
2010년에소프트웨어엔지니어로시작해소프트웨어설계자를거쳐클라우드책임자에이르기까지다양한직군과역할을담당했다.2013년에는자신의회사를설립하면서데브옵스문화를처음접했다.소규모팀과함께마이크로서비스아키텍처및모바일애플리케이션배포를위한2개의CI/CD파이프라인을구축했다.그후자신이참여한대부분의회사의데브옵스문화및자동화에영향을미쳤다.

역자:이장훈
건국대학교영어영문학과를졸업했지만,IT가좋아서4년차클라우드엔지니어로일하고있다.지금은클라우드네이티브와쿠버네티스에많은관심을갖고있다.데브옵스(DevOps),핀옵스(FinOps),섹옵스(SecOps)능력을갖추려고항상노력하고있다.

목차


1부.깃옵스와ArgoCD의기초

1장.깃옵스와쿠버네티스
__기술요구사항
__깃옵스란무엇인가?
__쿠버네티스와깃옵스
____아키텍처
____HTTPRESTAPI서버
____컨트롤러매니저
__명령형API와선언형API
____명령형방식-직접명령
____명령형방식-구성파일사용
____선언형방식-구성파일사용
____선언형방식-구성폴더와함께
__간단한깃옵스오퍼레이터구축
__IaC와깃옵스
__요약
__더알아보기

2장.ArgoCD시작하기
__기술요구사항
__ArgoCD란무엇인가?
____ArgoCD와친해지기
__핵심개념과용어정리
____ArgoCD조정
____용어
__아키텍처설명
____아키텍처개요
____ArgoCD의핵심구성요소
____ArgoCD의핵심오브젝트와리소스
____헬름으로ArgoCD실행하기
____ArgoCD첫애플리케이션실행하기
____ArgoCD오토파일럿을통해ArgoCD운영하기
__동기화원리
____리소스훅
____동기화웨이브
__요약
__더알아보기

2부.SRE와ArgoCD

3장.ArgoCD운영
__기술요구사항
__선언적구성
____Kustomize를활용한고가용성설치
____ArgoCD자체관리
____설정변경
__고가용성설치
____API서버
____리포지터리서버
____애플리케이션컨트롤러
____레디스캐시
____Dex서버
__재해복구계획
____CLI설치하기
____백업생성하기
____다른클러스터에서복원하기
__관찰가능성활성화
____프로메테우스로모니터링하기
____운영팀이확인할메트릭
____마이크로서비스팀을위한메트릭
__사용자에게통지
____ArgoCDNotifications설치
____파이프라인시작하기
__요약
__더알아보기

4장.접근제어
__기술요구사항
__선언적사용자
____관리자와로컬사용자
__서비스어카운트
____로컬서비스어카운트
____프로젝트역할과토큰
__SSO
____Dex를통해SSO이용하기
____ArgoCD에서직접SSO활용하기
__요약
__더알아보기

3부.운영환경에서Argo

5장.ArgoCD로쿠버네티스클러스터부트스트랩
__기술요구사항
__테라폼을통한아마존EKS클러스터생성
____아마존EKS와친해지기
____EKS인프라설계하기
____테라폼으로EKS프로비저닝
__ArgoCD로EKS부트스트랩하기
____테라폼으로ArgoCD준비하기
____테라폼으로ArgoCD적용하기
__appofapps패턴활용
____왜appofapps패턴인가?
____유틸리티부트스트랩하기
__부트스트랩연습
____인프라삭제
____인프라재생성
____appofapps패턴의단점
____ApplicationSet은무엇인가?
____제너레이터
__요약
__더알아보기

6장.ArgoCD배포파이프라인설계
__기술요구사항
__도입배경
____쿠버네티스에서간단한블루-그린배포
__배포전략
____ArgoRollout은무엇인가?
____왜ArgoRollout인가?
____ArgoRollout아키텍처
____블루-그린배포전략
____카나리배포전략
__실제CI/CD파이프라인
____ArgoRollout세팅하기
____깃허브액션을활용해자동으로블루-그린승격하기
____동기화단계를통한자동롤아웃
__안전하게시크릿보관하기
____시크릿에안전하게저장하기
____ArgoCD와외부시크릿오퍼레이터
__마이크로서비스CI/CD
__단일리포지터리마이크로서비스
__요약
__더알아보기

7장.ArgoCD문제해결
__기술요구사항
__초기설치
__운영중문제해결
____구성요소재시작
____특정버전의헬름사용하기
__성능향상
____애플리케이션컨트롤러
____리포지터리서버
__요약
__더알아보기

8장.YAML과쿠버네티스매니페스트
__기술요구사항
__템플릿옵션활용
____헬름
____Kustomize
__유효성검사유형탐구
__쿠버네티스스키마검증
__매니페스트강화모범사례
__conftest로확장성있는검사수행
__요약
__더알아보기

9장.미래와결론
__기술요구사항
__깃옵스대중화
__깃옵스엔진은무엇인가?
____깃옵스에이전트
__kubernetes-sigs/cli-utils는무엇인가?
____kapply사용법
__마무리
__요약
__더알아보기

출판사 서평

이책에서다루는내용

깃옵스원칙을이해하고IaC와관련성파악
ArgoCD가Git상태와클러스터상태를조정하는원리탐구이해
프로덕션환경에서신뢰성과문제해결에초점을두고ArgoCD운영
필수유틸리티를사용해깃옵스방식으로쿠버네티스클러스터부트스트랩
CD파이프라인구축과배포실패최소화
쿠버네티스작업시함께사용하는YAML을검증하고확인하는방법탐구
깃옵스대중화에대한이해와깃옵스엔진의장점소개

이책의대상독자

이책은소프트웨어엔지니어,데브옵스엔지니어,SRE와같이쿠버네티스를운영하면서CD파이프라인구축을담당하는사람,본인의커리어를향상시키고싶은사람을대상으로한다.쿠버네티스(Kubernetes),헬름(Helm),커스터마이즈(Kustomize),CD파이프라인에대한기본적인지식이있다면이책을더잘활용할수있다.

이책의구성

1장,‘깃옵스와쿠버네티스’에서는쿠버네티스가어떻게깃옵스개념을도입할수있었는지알아본다.선언적API를알아보고,파일,폴더,깃리포지터리에서리소스를어떻게적용할수있는지살펴본다.
2장,‘ArgoCD시작하기’에서는ArgoCD의핵심개념과아키텍처개요를소개하고자세히이해하기위해알아야할필수용어를살펴본다.
3장,‘ArgoCD운영’에서는고가용성매니페스트(manifest)를사용해ArgoCD를설치해보고,가장최적의구성옵션이무엇인지알아본다.재해복구를대비하고,많은메트릭중꼭필요한것은무엇인지살펴본다.
4장,‘접근제어’에서는사용자접근권한을설정하는방법과CLI,웹UI또는CI/CD파이프라인을통한연결옵션을알아본다.역할기반접근제어(RBAC,Role-basedAccessControl)와SSO에대해알아보고이를구성하는다양한옵션에대해자세히설명한다.
5장,‘ArgoCD로쿠버네티스클러스터부트스트랩’에서는IaC(Infrastructureascode)도구를사용해쿠버네티스클러스터를생성하는방법과ArgoCD로필요한애플리케이션을설정하고애플리케이션을배포할때직면하게될보안문제를확인하는방법을알아본다.
6장,‘ArgoCD배포파이프라인설계’에서는5장에서설치한인프라를기반으로실제배포전략을알아보고시크릿과아르고롤아웃(ArgoRollouts)에익숙해진다.
7장,‘ArgoCD문제해결’에서는설치할때혹은평소작업간자주발생할수있는문제에대해서다루고ArgoCD성능을개선하는방법을살펴본다.
8장,‘YAML및쿠버네티스매니페스트(파싱및검증)’에서는작성한YAML매니페스트유효성을검사하고,모범사례를통해이를검증해보고,쿠버네티스스키마를확인하거나레고(Rego)로작성된자체확장유효성검사를수행하는데사용할수있는도구를알아본다.
9장,‘미래와결론’에서는깃옵스엔진과kubernetes-sigs/cli-utils가ArgoCD나쿠버네티스커뮤니티로부터분리돼개발된과정,그리고이들을사용해달성하려는목표에대해설명한다.