책소개
Argo CD는 쿠버네티스 클러스터에서 선언적인 깃옵스 워크플로를 제공하는 대표적인 도구로, 깃 리포지터리를 기반으로 애플리케이션 배포와 관리를 자동화하는 역할을 한다. 『예제로 배우는 Argo CD』는 Argo CD의 아키텍처와 동작원리를 살펴보고, IaC 도구 또는 다양한 방법을 통해 Argo CD 클러스터를 구현해보면서 학습할 수 있도록 구성된 책이다. Argo CD를 운영하는 어드민 담당자에게 필요한 고가용성 설정, 사용자 접근 통제, 보안 강화 방법과 문제 해결에 대한 내용이 담겨 있다. 또한 개발자나 엔지니어에게는 Argo CD를 통한 배포 파이프라인을 설계하는 방법과 YAML을 좀 더 효율적으로 작성하는 방법이 도움이 될 것이다. 이 책의 내용을 바탕으로 Argo CD를 실무에 적용해 보길 바란다.
목차
1부. 깃옵스와 Argo CD의 기초
1장. 깃옵스와 쿠버네티스
2장. Argo CD 시작하기
2부. 사이트 신뢰성 엔지니어와 Argo CD
3장. Argo CD 운영
4장. 접근 제어
3부. 운영 환경에서 Argo CD
5장. Argo CD로 쿠버네티스 클러스터 부트스트랩
6장. Argo CD 배포 파이프라인 설계
7장. Argo CD 트러블 슈팅
8장. YAML 및 쿠버네티스 매니페스트(파싱 및 검증)
9장. 미래와 결론
저자소개
리비우 코스테아, 스피로스 이코노마키스 , 이장훈
출판사리뷰
이 책에서 다루는 내용
- 깃옵스 원칙을 이해하고 IaC와 관련성 파악
- Argo CD가 Git 상태와 클러스터 상태를 조정하는 원리 탐구 이해
- 프로덕션 환경에서 신뢰성과 문제 해결에 초점을 두고 Argo CD 운영
- 필수 유틸리티를 사용해 깃옵스 방식으로 쿠버네티스 클러스터 부트스트랩
- CD 파이프라인 구축과 배포 실패 최소화
- 쿠버네티스 작업 시 함께 사용하는 YAML을 검증하고 확인하는 방법 탐구
- 깃옵스 대중화에 대한 이해와 깃옵스 엔진의 장점 소개
이 책의 대상 독자
이 책은 소프트웨어 엔지니어, 데브옵스 엔지니어, SRE와 같이 쿠버네티스를 운영하면서 CD 파이프라인 구축을 담당하는 사람, 본인의 커리어를 향상시키고 싶은 사람을 대상으로 한다. 쿠버네티스(Kubernetes), 헬름(Helm), 커스터마이즈(Kustomize), CD 파이프라인에 대한 기본적인 지식이 있다면 이 책을 더 잘 활용할 수 있다.
이 책의 구성
1장, ‘깃옵스와 쿠버네티스’에서는 쿠버네티스가 어떻게 깃옵스 개념을 도입할 수 있었는지 알아본다. 선언적 API를 알아보고, 파일, 폴더, 깃 리포지터리에서 리소스를 어떻게 적용할 수 있는지 살펴본다.
2장, ‘Argo CD 시작하기’에서는 Argo CD의 핵심 개념과 아키텍처 개요를 소개보고 자세히 알아보기 위해 알아야 할 필수 용어를 살펴본다.
3장, ‘Argo CD 운영’에서는 고가용성 매니페스트(manifest)를 사용해 Argo CD를 설치해보고, 가장 최적의 구성 옵션이 무엇인지 알아본다. 재해 복구를 대비하고, 많은 메트릭 중 꼭 필요한 것은 무엇인지 살펴본다.
4장, ‘접근 제어’에서는 사용자 접근 권한을 설정하는 방법과 CLI, 웹 UI 또는 CI/CD 파이프라인을 통한 연결 옵션을 알아본다. RBAC(Role-based Access Control)와 SSO에 대해 알아보고 이를 구성하는 다양한 옵션에 대해 자세히 설명한다.
5장, ‘Argo CD로 쿠버네티스 클러스터 부트스트랩’에서는 IaC(Infrastructure as code) 도구를 사용해 쿠버네티스 클러스터를 생성하는 방법과 ArgoCD로 필요한 애플리케이션을 설정하고 애플리케이션을 배포할 때 직면하게 될 보안 문제를 확인하는 방법을 알아본다.
6장, ‘Argo CD 배포 파이프라인 설계’에서는 5장에서 설치한 인프라를 기반으로 실제 배포 전략을 알아보고 시크릿과 아르고 롤아웃(Argo Rollouts)에 익숙해진다.
7장, ‘Argo CD 트러블슈팅’에서는 설치할 때 혹은 평소 작업 간 자주 발생할 수 있는 문제에 대해서 다루고 Argo CD 성능을 개선하는 방법을 살펴본다.
8장, ‘YAML 및 쿠버네티스 매니페스트(파싱 및 검증)’에서는 작성한 YAML 매니페스트 유효성을 검사하고, 모범 사례를 통해 이를 검증해보고, 쿠버네티스 스키마를 확인하거나 레고(Rego)로 작성된 자체 확장 유효성 검사를 수행하는 데 사용할 수 있는 도구를 알아본다.
9장, ‘미래와 결론’에서는 깃옵스 엔진과 kubernetes-sigs/cli-utils가 Argo CD나 쿠버네티스 커뮤니티로부터 분리돼 개발된 과정, 그리고 이들을 사용해 달성하려는 목표에 대해 설명한다.
지은이의 말
깃옵스는 이해하기 어려운 주제는 아니다. 본인이 원하는 환경을 선언적으로 정의하기 위해 깃 리포지터리(Git repository)를 사용한다. 버전 관리와 병합 요청을 통해 변경하는 방식으로 전체 시스템을 감시한다. 일단 깃옵스를 도입하게 되면 Argo CD 같은 툴을 사용하면서 점점 복잡해지기 시작한다. 첫 번째로 관찰가능성(observability)이나 고가용성(high availability)과 같은 내용을 염두해 두면서 Argo CD를 올바르게 설정해야 한다. 그리고 CI/CD 파이프라인에 대해서도 고민해보면서 새로운 깃옵스 리포지토리를 여기에 잘 융합할지도 고민해야 한다. 그리고 조직적으로 운영하면서 다양한 문제가 발생하기도 한다. 어떻게 각 팀을 새로운 설정에 맞게 통합할 것인지 고민해야 할 수도 있다. 또한 대부분 배포하는 네임스페이스별로 쿠버네티스 접근 권한이 나눠져 있을 수 있기 때문에 RBAC(Role-Based ACcess, 역할 기반 접근 통제)를 적절하게 구성하는 데 시간이 소요되기도 하고, 기존 팀의 액세스를 어떻게 새로운 깃옵스 엔진으로 이전할 것인지도 고려해야 한다.
짧은 글, 비디오, 강의 등 다양한 자료가 존재하지만 단편적인 주제를 다루고 있기 때문에 학습 방향을 설정하기 어렵고, 그렇게 내용이 깊지도 못하다. 그래서 Argo CD를 도입하는 것이 어떤 변화를 만들고, 어떻게 사용하는 것인지 파악하기가 쉽지 않다. 독자들이 Argo CD를 처음 시작할 때 기본적으로 필요한 내용인 설치부터 올바른 접근 제어를 설정하는 것까지 전반적인 내용을 가이드하고, 심화 시나리오와 트러블슈팅 과정을 포함해 프로덕션 환경에서 직면할 수 있는 문제들을 다루기 위해서 이 책을 집필했다. 우리는 회사에서 초기에 깃옵스를 도입했으며 깃옵스를 오랫동안 직접적으로 사용했다. 초기에는 자체 깃옵스 오퍼레이터를 구축하려고 했다. 금방 만들 수 있을 줄 알았지만 2~3주 동안 필요한 것이 무엇인지 분석하다가 포기했다. 우리는 운영하면서 많은 문제를 겪었는데 일부는 잘 처리했고 일부는 해결하는 데 많은 시간이 걸렸다. 하지만 그러면서 정말 많은 것을 배웠기에 이것을 독자들과 공유하고자 한다. 확실한 것은 이 책을 통해 Argo CD와 깃옵스를 적용하는 데 큰 도움을 받을 수 있을 것이다.
옮긴이의 말
Argo 프로젝트는 Argo WorkFlow, Argo CD, Argo Rollout, Argo Event 이렇게 총 4개의 프로젝트로 구성돼 있으며 워크플로를 실행하고, 클러스터를 관리하고, GitOps를 올바르게 수행하기 위한 쿠버네티스 오픈 소스입니다. 2020년 3월 26일에 인큐베이팅 수준에서 CNCF(Cloud Native Computing Foundation)에 승인된 후 2022년 12월 6일 졸업(Graduate)했습니다. 그만큼 완성도가 높고 검증된 프로젝트가 아닐까 합니다. 특히나 최근 쿠버네티스를 많이 활용하면서 이미 많은 회사가 Argo CD를 도입해 사용하고 있는 것으로 알고 있습니다. 하지만 이렇게 많아지는 인기 속에 아직까지 Argo CD 만을 다룬 책은 많이 없는 것으로 알고 있습니다. 이를 기점으로 국내서적이나 번역서가 많이 출시됐으면 좋겠습니다.