[서평 작성] 쿠버네티스 교과서
들어가며. 📝
안녕하세요? 정리하는 개발자 워니즈입니다. 이번시간에는 쿠버네티스 교과서에 대한 서평을 작성해보려고합니다. 필자는 DevOps Engineer로서 Kubernetes를 직접 설치 및 운영을 하고 있는데요. 그러다보니 Kubernetes에 대해서 심도 깊게 이해하면서도 운영에 필요한 지식들을 많이 알고 있어야 합니다. 그러던 와중에 쿠버네티스 교과서에 대한 서평의 기회를 갖게 되었고, 천천히 각 챕터별로 읽어보면서 보고 느낀 그대로에 대해서 기록을 남기고자 합니다.
이 책의 대상 독자는 개발과 운영을 막론하고 누구에게나 해당 서적이 도움이 될것이라고 기재되어있습니다. 필자가 느끼는 것도 kubernetes는 많은 기업들에 보편화된 플랫폼이다보니 개발직군에 속하는 Engineer라면 누구에게나 해당 서적을 읽는 것이 도움이 될것이라고 생각합니다.
각 장의 구성은 크게 4단계로 나뉘어있습니다.
- 1부에서는 쿠버네티스에서 애플리케이션을 구동하는 기본적인 지식에 대해서 소개합니다.
- 2부에서는 컨테이너를 활용하여 일상 운영 작업을 수행하는 방법을 다룹니다. 예를들어 헬름과 CI / CD등 운영환경에서 컨테이너를 활용한 운영작업들을 소개하고 있습니다.
- 3부에서는 쿠버네티스를 이용한 애플리케이션 실행을 넘어 실제 서비스 운영환경 수준의 적용성과 관련된 주제를 다루고 있습니다. 예를들어, 로깅과 모니터링에 대한 내용들을 소개하고 있습니다.
- 4부에서는 전문적인 주제를 다루고 있습니다. 예를들어 RBAC 혹은 스케쥴링 조정과 자동 스케일링등의 내용을 소개하고 있습니다.
그러면 상세하게 각 부별로 어떤 내용들이 있는지 서평을 작성해보겠습니다.
목차. 📚
- 1장 시작하기 전에
- 2장 파드와 디플로이먼트로 컨테이너 실행하기
- 3장 네트워크를 통해 서비스에 파드 연결하기
- 4장 컨피그랩과 비밀값으로 애플리케이션 설정하기
- 5장 볼륨, 마운트, 클레임을 이용한 데이터 퍼시스턴시
- 6장 컨트롤러 리소스를 이용한 애플리케이션의 스케일링
- 7장 멀티컨테이너 파드를 이용하여 애플리케이션 확장하기
- 8장 데이터를 많이 다루는 애플리케이션 실행하기 : 스테이트풀셋과 잡
- 9장 롤아웃과 롤백을 이용한 애플리케이션 릴리스 관리
- 10장 헬름을 이용한 애플리케이션 패키징 및 관리
- 11장 애플리케이션 개발: 개발 워크플로와 CI / CD
- 12장 자기복수형 애플리케이션 활용하기
- 13장 플루언트디와 일래스틱서치를 이용한 중앙화된 로그 관리
- 14장 프로메테우스를 이용한 쿠버네티스 및 애플리케이션 모니터링
- 15장 인그레스를 이용한 인입 트래픽 관리
- 16장 폴리시, 컨텍스트, API 접근 제어를 이용한 애플리케이션 보안
- 17장 역할 기반 접근 제어를 이용한 리소스 보안
- 18장 쿠버네티스 배치하기: 다중 노드 혹은 다중 아키텍터 클러스터
- 19장 워크로드의 배치 조정과 자동 스케일링
- 20장 사용자 정의 리소스와 오퍼레이터를 이용하여 쿠버네티스 확장하기
- 21장 쿠버네티스에서 서버리스 펑션 실행하기
- 22장 끝없는 정진
1부 쿠버네티스 빠르게 훓어보기
쿠버네티스를 시작하면 알 수 있는 기본적인 개념들에 대해서 상세히 소개하고있습니다. Pod, Deployment, Service에 대한 기본적인 개념들을 예제와 함께 설명하고 있습니다. 특히 각 개념별로 단순한 설명을 넘어서 그림과 함께 상세한 내용들을 소개하고있어서, 이해를 하는데 많은 도움이 되는것 같았습니다.
각 예제는 아래의 경로에서 제공을 하고있습니다.
- https://github.com/gilbutITbook/kiamol
챕터별 폴더가 나뉘어있어서 예제들을 따라가기가 쉽고, 책에도 각 예제를 실행한 모습을 그림으로 보여주고있어서 강의를 듣는 것처럼 따라가기가 쉬웠습니다.
위의 예제는 원주율 계산기의 캐싱을 적용하기 위해서 configmap을 적용한 내용을 보여주고있습니다. 단순하게 텍스트로만 설명을 하거나 예제 파일로만 설명을 하게 된다면 처음 접하는 독자들은 이해하기가 어려울 수 있습니다.
그림을 통해서 커맨드별 실행 모습과 결과에 대해서 캡쳐된 화면을 통해 독자의 이해를 돕고 있어 굉장히 이해하기 쉬웠습니다. 모든 예제에 대해서 위와 같이 친절하게 설명을 하고 있기 때문에 어느 누구라도 쉽게 이해를 할 수 있지 않을까 생각해봅니다.
또한 실행 결과를 바탕으로 현재 구성이 어떻게 되어있는지 간단한 구성도를 통해서 실습에 대한 이해를 바탕으로 전체적인 구성까지 이해를 할 수 있도록 배치했다고 생각했습니다.
위에서 적용한 예제의 구성이 어떻게 되는지를 그림으로 보여주니, 각 예제별 내용들을 하나씩 이해하고 넘어갈 수 있게 되었습니다.
2부 쿠버네티스 실무에 활용하기
2부에서는 실무에서 실제로 활용할 수 있는 내용들로 구성이 되어있습니다. 멀티 컨테이너, 스테이트풀 셋과 잡, 헬름을 이용한 패키징 그리고 CI / CD까지 쿠버네티스를 활용한 실질적인 활용방안들로 구성이 되어있어 2부까지 실습한 독자라면 기본적인 구성들은 어느정도 할 수 있을것이라고 생각이 됩니다.
필자도 DevOps Engineer로 일을 하고 있지만 가장 크게 와닿고 실질적으로 많이 활용되는 부분은 2부에 배치가 되어있다라고 생각이 될만큼 이부분에서는 실무에서 활용하는 핵심들을 이야기하고 있습니다.
1부에서의 개념을 바탕으로 2부에서는 실제 업무에 적용해서 쿠버네티스의 배포 구성을 정의하고 빌드 파이프라인을 구성하여 실제 업무에 배치를 할 수 있도록 설명이 되어있습니다.
3부 운영 환경으로 가자
3부에서는 2부에서의 내용을 좀더 보완할 수 있는 내용들로 구성이 되어있습니다. 가령 로그 수집이라던지 모니터링 영역에 대해서 소개를 하고 있습니다. kubernetes를 활용하게 되면 자연스럽게 로깅 아키텍처로는 fluentd & elasticsearch 모니터링으로는 prometheus & grafana를 활용하게 됩니다. 이런부분에 대해서도 13장, 14장에 이어서 소개를 하고 있습니다.
로그 수집과 모니터링으로 이어지면서 실질적인 운영환경으로 넘어가는 부분에 대해서 구성이 잘되어있다고 생각하게 되었습니다. 또한 kubernetes의 트래픽 통로의 역할을 하는 Ingress에 대한 내용도 15장에 정리가 되어있습니다.
3부까지 읽은 독자라면 실제 업무 내에서 무리 없이 kubernetes를 운용하고 관리할 수 있게 될 것입니다. 적절한 내용배치를 통하여 독자로하여금 순차적으로 운영환경까지 구성할 수 있도록 가이드 하고 있다고 생각합니다.
16장에서는 보안적인 내용이 설명이 되어있습니다. 이부분이 실질적으로 3부에 속하는지 4부에 속하는지 독자입장에서는 애매했는데요. 실제 운영환경에서 많은 부분을 활용하고 있지 않아서 4부에 배치를 했으면 하는 생각이 있었습니다.
4부 고급 쿠버네티스 사용법
4부는 고급 쿠버네티스 사용법으로 RBAC을 통한 권한 제어, 다중 아키텍처 클러스터, 스케쥴링 제어라던지 HPA를 통한 스케일링에 대해서 소개를 하고 있습니다. 말그대로 고급에 해당하는 내용으로 반드시 해당 내용을 알지 못하더라도 쿠버네티스를 운용하는데는 큰 문제는 없습니다. 하지만 해당 내용을 통해서 좀더 쿠버네티스의 날개를 달아 줄 수 있는 내용으로 구성이 되어있다라고 생각하게 되었습니다.
RBAC에 대한 내용은 쉽게 알지 못하는 내용임에도 불구하고 각 예제밸로 설명을 잘 해주고 그림을 통해서 이해를 돕고 있기 때문에 독자로 하여금 애매하거나 어려운 부분없이 쉽게 읽을 수 있도록 구성했다고 생각합니다.
마치며. 📖
해당 책은 쿠버네티스 교과서라는 타이틀 답게 정석적인 내용을 위주로 담백하게 담아내고 있다고 생각합니다. 다만, 전체 내용이 700페이지에 달하는 만큼 단시간에 읽을 수 있는 분량은 아니라고 생각합니다. 책의 소개에서도 주단위로 각 부를 읽을 수 있도록 되어있다고 설명하고 있어서 전체적으로 해당 내용을 읽이 위해서는 최소 1달여의 시간이 필요하지 않을까 생각해봅니다.
내용 구성면에서는 1부에서는 기본 개념, 2부에서는 운영환경으로의 적용, 3부에서는 운영환경을 좀더 탄탄하게 만들 수 있는 로깅, 모니터링에 대한 내용 그리고 4부에서는 이를 좀 더 심화할 수 있는 RBAC, HPA등의 내용에 대해서 소개를 하고있어 각 부 별로 스텝업을 하는 느낌으로 구성이 되어있다라고 생각합니다.
각 챕터별로 예제를 구성하고 있어 독자로 하여금 각 예제별로 직접 실행할 수 있는 구성이 좋았습니다. 더군다나 그림을 통해서 실습했던 예제들의 간단한 구성을 볼 수 있어서 이해를 돕는 역할을 충분히 했다고 생각합니다. 그리고 각 장이 끝날 때마다 나오는 연습 문제는 각 장에 대해서 얼마만큼 이해를 하고있나에 대한 평가를 할 수 있어서 좋은 배치였다고 생각합니다.
한가지 아쉬웠던 점은 전체적인 예제 사항이 원주율 계산기와 투두리스트가 병행되어가면서 소개가 되고 있는데 이부분이 한가지 통일 감을 갖도록 구성을 했으면 좀 더 좋았을 것 같습니다. 각 부별로 스텝업이 이뤄지는 만큼 한가지 어플리케이션에 대해서 소개를 하고 전체 내용을 마쳤을 때, 작지만 간단한 어플리케이션이 구성되 실질적인 운용을 할 수 있도록 하면 좀더 이해를 하는 면에서 통일감이 있지 않을까 생각해봅니다.
끝으로 해당 서적은 추가적으로 쿠버네티스 교과서(부록)을 무료로 다운로드 받을 수 있도록 제공하고있습니다. 내용은 아래 에서 확인을 할 수 가있고, 내용은 도커에 대한 기본내용으로 구성이 되어있어서 사전에 읽어두면 도움이 될것이라고 생각합니다.
전체적인 평가는 쿠버네티스를 배우고 싶은 누구에게나 좋은 교과서가 될 수 있다고 생각합니다. 쿠버네티스라는 도구를 배울 수 있는 플랫폼과 서적은 많이 있지만 이처럼 교과서적으로 전체적인 내용을 망라하는 것은 본적이 없다고 생각합니다. 주단위로 각 부를 나누어서 예제를 직접 실행해본 독자라면 책을 모두 읽었을 때는 쿠버네티스 마스터가 되어있지 않을까 생각해봅니다.
워니즈님 믿고 사서 보고 공부해보겠습니다. 🙂