입문부터 실제 운용까지, 필요한 기술 총망라!

마사야 아오야마 지음 / 박상욱 옮김

"길벗 개발자 리뷰어 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

10월, 정기적인 리뷰어 활동 외에 추가로 길벗 출판사 리뷰어 활동에 선정되어 리뷰를 남기게 되었다.

최근에 쿠버네티스 모범 사례 리뷰도 남겼는데 비슷한 주제의 책을 동시에 쓰게 되다니...

 

일단, 쿠버네티스란 무엇인가? (지난주에도 쓴 말 같은데...)

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

 

쿠버네티스란 무엇인가?

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하

kubernetes.io

쿠버네티스는 컨테이너화 된 애플리케이션의 배포, 확장 등과 같은 관리를 자동화하기 위한 플랫폼이다.

시스디그(Sysdig)가 공개한 Report에 따르면 컨테이너 오케스트레이션 엔진 시장 점유율에서 쿠버네티스가 77%를 차지한다고 한다.

쿠버네티스는 사실상 오케스트레이션 엔진 분야에서 표준이 되었다고 할 수 있으며, 앞으로 클라우드 네이티브 환경에서의 개발이 더욱 보편화되면서 반드시 사용해야 하는 플랫폼이 될 것이다.

 

쿠버네티스는 인프라 엔지니어와 애플리케이션 개발자 사이에 위치하는 소프트웨어로서, 이 책은 애플리케이션 개발자가 사용할 만한 쿠버네티스의 기능 전반을 다루고 있다.

또한 CKA / CKAD 라는 쿠버네티스 자격증에 대해서도 설명하고 있으니, 책을 학습한 후에 자격증도 꼭 취득해 보도록 하자.

 

이 책은 쿠버네티스를 한 번도 경험하지 못한 분들도 개념을 이해하고 실제 애플리케이션을 컨테이너화하여 실행할 수 있는 수준까지 실력을 끌어올리는 것을 목표로 하고 있다. 이 책을 끝까지 읽고 나면, 쿠버네티스를 실제로 도입하거나 쿠버네티스의 여러 에코시스템을 이해할 수 있을 것이다.

 

책의 총 페이지는 848페이지로 방대한 양을 자랑하며, 285개의 그림과 312개의 예제 매니페스트로 체계적으로 설명하고 있다.

 

이 책의 예제 매니페스트는,

https://github.com/MasayaAoyama/kubernetes-perfect-guide

 

GitHub - MasayaAoyama/kubernetes-perfect-guide: 『Kubernetes完全ガイド』の付録マニフェストのリポジトリ / "

『Kubernetes完全ガイド』の付録マニフェストのリポジトリ / "Kubernetes perfect guide" sample manifest repository - GitHub - MasayaAoyama/kubernetes-perfect-guide: 『Kubernetes完全ガイド』の付録マニフェストのリポジト

github.com

https://github.com/MasayaAoyama/kubernetes-perfect-guide/tree/ko/2nd-edition

 

GitHub - MasayaAoyama/kubernetes-perfect-guide: 『Kubernetes完全ガイド』の付録マニフェストのリポジトリ / "

『Kubernetes完全ガイド』の付録マニフェストのリポジトリ / "Kubernetes perfect guide" sample manifest repository - GitHub - MasayaAoyama/kubernetes-perfect-guide: 『Kubernetes完全ガイド』の付録マニフェストのリポジト

github.com

상기 github에서 다운로드할 수 있으니 꼭 방문해보길 바란다.

 

최근 클라우드 네이티브라고 하면, 그 중심에 컨테이너, 컨테이너 오케스트레이션 도구를 도입하는 것이 일반화되었다.

 

본인 역시 회사에서 GCP와 Azure 환경에서 개발을 진행하고 있다 보니 쿠버네티스를 이용하여 배포를 진행하고 있다.

 

쿠버네티스라는 단어만 많이 들어봤지 실제로 활용은 많이 못해봤기 때문에 공부를 시작하는 것 자체도 어려움이 많다.

이 책은 기초부터 체계적으로 익힐 수 있도록 구성이 되어 있으니, 책을 통해 쿠버네티스를 비교적 쉽게 익히고, 실제 서비스 환경에 접목시켜 애플리케이션을 배포하고 운영해보면 학습이 더 효율적일 것이다.

 

일단 목차를 살펴보자.

1장 도커 복습과 Hello, Kubernetes

2장 왜 쿠버네티스가 필요할까?

3장 쿠버네티스 환경 선택

4장 API 리소스와 kubectl

5장 워크로드 API 카테고리

6장 서비스 API 카테고리

7장 컨피그 & 스토리지 API 카테고리

8장 클러스터 API 카테고리와 메타데이터 API 카테고리

9장 리소스 관리와 오토 스케일링

10장 헬스 체크와 컨테이너 라이프사이클

11장 메인터넌스와 노드 정지

12장 유연한 고급 스케줄링

13장 보안

14장 매니페스트 범용화 오픈 소스 소프트웨어

15장 모니터링

16장 컨테이너 로그 집계

17장 쿠버네티스 환경에서의 CI/CD

18장 마이크로서비스 아키텍처와 서비스 매시

19장 쿠버네티스 아키텍처의 이해

20장 쿠버네티스와 미래

21장 부록

 

목차만 봐도 방대하다. 실무를 담당하고 있는 개발자라면 필요한 부분의 목차만 찾아서 공부해도 될 정도로 구분이 잘 되어 있다.

 

본문의 일부를 보자.

인그레스 컨트롤러 배포

본 책에서 쿠버네티스 기능 소개는 GKE 기준으로 설명되어 있지만, 다른 쿠버네티스에서도 충분히 적용 가능하다.

- GKE : Google Kubernetes Engine

- AKS : Azure Kubernetes Service

- EKS : Elastic Kubernetes Service

 

본문을 보면 그림과 그에 해당하는 설명들로 구성되어 있고, 순서가 잘 적혀 있기 때문에 그대로 따라 하면서 이해하고 적용이 가능하다.

그리고 챕터가 끝나면 챕터에 대한 정리를 해주기 때문에 한번더 이해하고 복습할 수 있다.

 

본인은 아직 이 책을 다보진 못하고 일부일부만 보고 있지만, 언젠가는 꼭 정독해서 실무에 적용하고 자격증도 따겠다는 목표가 생겼다.

 

쿠버네티스 실무자가 되기 위한 필독서!

애플리케이션 개발자도 당연히 도커를 알아야 하는 시대가 온 것처럼, 쿠버네티스도 보편화가 될 것이라는 것은 부정할 수 없는 사실이다.

현재 개발 기술에만 안주하지 말고 이 책을 꼭 완독하여 기회가 왔을 때 잡을 수 있는 개발자가 되도록 하자!!

쿠버네티스 창시자가 알려주는 최신 쿠버네티스 개발 및 배포 기법

 

브랜던 번스, 에디 비얄바, 데이브 스트레벨, 라클런 이븐슨 지음 / 장정호 옮김

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

10월, 나는 리뷰어다 활동의 9번째 리뷰.

(8번째 리뷰는 완성하지 못하여 비공개입니다. 흙흙)

 

여차저차하여 쿠버네티스 모범 사례 책을 받게 되었다. 회사는 Azure 클라우드 환경에서 개발 및 배포를 진행하기 때문에 쿠버네티스 파이프라인 구성이 굉장히 중요하다. 본인은 아직 주니어기 때문에 쿠버네티스 구성을 직접 한다거나 수정하는 등의 중책을 맡고 있지는 못하지만, 그래도 어떻게 굴러가는 건지는 알아야 할 것 같아서 신청하였다.

 

일단, 쿠버네티스란 무엇인가?

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

 

쿠버네티스란 무엇인가?

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하

kubernetes.io

쿠버네티스는 컨테이너화워크로드서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성자동화를 모두 용이하게 해 준다. 크고, 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다.

-----

좋은 것 같긴 한데 도통 뭐라는건지 전혀 모르겠다. 회사 프로젝트가 쿠버네티스를 이용하고 있음에도 이런다. 그나마 도커는 조금 알고 이해하고는 있지만 ...

 

그럼, 쿠버네티스가 왜 필요하고 무엇인지 알아보자.

- 서비스 디스커버리와 로드 밸런싱

- 스토리지 오케스트레이션

- 자동화된 롤아웃과 롤백

- 자동화된 빈 패킹(bin packing)

- 자동화된 복구(self-healing)

- 시크릿과 구성 관리

---

역시 잘 모르겠다. 하하하하하하...

 

쿠버네티스가 더 궁금하다면 조대협님이 블로그를 정독하도록 하자.

https://bcho.tistory.com/1255

 

쿠버네티스 #1 - 소개

Kubernetes #1 - 소개 조대협 (http://bcho.tistory.com) 배경 도커와 쿠버네티스를 알게 된건 수년전인데, 근래에 들어서 다시 쿠버네티스를 보기 시작하였다. 컨테이너 기반의 환경은 배포에 장점이 있고

bcho.tistory.com

자 그럼 이 책에 대해서 알아보자. 이제 본론이다.

옮긴이의 말을 보면, 이 책을 통해 15년 이상 쌓아온 구글의 노하우를 터득할 수 있다고 한다. 쿠버네티스는 자유도가 높기 때문에 제대로 활용할 방법을 찾는 것에 많은 시간과 노력이 든다고 한다. 쿠버네티스의 창시자인 브렌던 번스가 다양한 실무자를 도우며 경험한 내용을 담았으며 초보 실무자는 물론 경험이 많은 프로 실무자에게도 꼭 필요한 책이라고 한다.

 

책의 구성을 보자.

각 장은 독립적인 형태로 구성되어 있으며 각 장은 쿠버네티스에서 수행하는 특정 작업에 대한 전반적인 개요와 같으므로, 특정 주제를 배우고 싶거나 관심사가 생겼을 때 찾아서 읽으면 더 효율적이다.

 

사실 쿠버네티스는 클라우드 네이티브 개발의 사실상 표준으로, 애플리케이션을 더 쉽게 개발하고 빠르게 배포하고 안정적으로 운영하도록 돕는 강력한 도구이다. 이 책은 쿠버네티스를 소개하는 책이 아니며, 독자가 기본적인 쿠버네티스 API와 도구와 친숙하며 쿠버네티스 클러스터를 생성하고 상호작용하는 법을 안다고 가정한다. 아무튼 쿠버네티스에 관심 있는 사람이 보기에 참 좋은 책이라는 이야기다.

 

CONTENTS

1. 기본 서비스 설치

2. 개발자 워크플로

3. 모니터링과 로깅

4. 설정, 시크릿, RBAC

5. 지속적 통합, 테스트, 배포

6. 버전, 릴리스, 롤아웃

7. 글로벌 애플리케이션 분산과 스테이지

8. 리소스 관리

9. 네트워킹, 네트워크 보안, 서비스 메시

10. 파드와 컨테이너 보안

11. 클러스터 정책과 거버넌스

12. 다중 클러스터 관리

13. 외부 서비스와 쿠버네티스 통합

14. 쿠버네티스에서 머신러닝 실행하기

15. 고수준 애플리케이션 패턴 구축

16. 상태와 스테이트풀 애플리케이션 관리

17. 어드미션 컨트롤과 권한

18. 결론

 

CONTENTS를 보면 실무자가 어려움에 처했을 때 케이스를 쉽게 찾을 수 있도록 구성되어 있다.

배포를 할 때 문제가 발생하였다면 5번 CONTENTS를 먼저 참고하고, 책 뒤에 있는 INDEX를 참고하면 될 일이다.
(사실, 그전에 갓글 검색 먼저 하겠지만 말이다.)

 

5장 지속적 통합, 테스트, 배포

책을 보면 명령어와 함께 순서대로 설명을 잘해주기 때문에 그대로 따라 해 보면 바로 적용해 볼 수 있다.

게다가 각 챕터의 끝에는 모범 사례를 말하지만 꿀팁을 제공하고 있는 부분이다.

5.10 CI/CD 모범 사례

5장에서는 CI/CD 파이프라인이 쿠버네티스에 애플리케이션을 전달할 때 위험을 줄이고 처리 속도를 높이는 역할을 하는 부분에 서술하였고, 배포 전략까지 다루고 있다.

 

참말로, 현재 쿠버네티스를 다루고 있는 실무자라면 바로 적용해 볼 수 있는 부분들이 많아서 큰 도움이 된다.

 

본인은 아직 이 책의 전부를 읽어보진 않았고, 필요한 부분만 발췌해서 보고 있지만 앞으로 사전처럼 자주 볼 책임이 분명하다.

언젠가는 쿠버네테스에 관련해서도 블로깅 해보리라 다짐한다.

(현실은 시작한 시리즈가 없지만!!)

 

오늘도 괴발개발 코드 몽키는 조금 더 똑똑한 코딩을 하려 하고 있다.

우분투, 데비안, CentOS, 페도라 대응

가와구치 히로시, 다야 후미히코, 미사와 아키라 지음 / 서수환 옮김

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

8월, 나는 리뷰어다 활동의 7번째 리뷰.

 

최근 계속 SQL 관련 책만 신청하다가, 이번 리스트에 리눅스가 보이기에 얼른 신청했다.

회사 프로젝트가 AzureGCP 같은 클라우드 환경에서 개발을 하다 보니 아무래도 리눅스가 많이 부족함을 느낀다.

하지만 본인이 누구인가? 무려 리눅스 마스터 자격증이 있는 개발자가 아니던가?

(아.무.의.미.없.습.니.다. - 자격증과 실무는 정말 큰 연관관계가 없습니다.)

 

클라우드 컴퓨팅이 발전하면서 CLI 명령어에 대한 필요성이 더 중요해져 가는 시기다.

GUI가 다 보여줄 수 없는 수준 높은 기능을 제공하는 것이 바로 리눅스다.

On-premise에서 Cloud로 빠르게 변화 하는 세상이고, Cloud는 리눅스가 필수이다!!

제발 리눅스 공부하세요 여러분!!

 

보통의 개발자들은 Git Bash를 통해 리눅스 커맨드를 사용하게 된다.

혹은 mac을 사용하는 분들은 기본적으로 리눅스 환경이 구축되어 있어서 Terminal을 통해 나도 모르게 명령어를 사용하고 있을 것이다.

CLI 명령어에 익숙해지고 조합하다 보면 점점 더 능숙하게 사용하게 되고, 일도 편하게 할 수 있다.

 

지금까지, 리눅스의 중요성에 대해서 열심히 떠들었으니!

"리눅스 입문자를 위한 명령어 사전" 책에 대해서 살펴보자.

(이때만 해도 "훗! 나는 입문자는 아니라구!" 라고 생각했었지...)

 

이 책의 저자 일동이 말하기를,

이 책은 수많은 명령어를 기계적으로 소개하는 대신에 평소에도 쓰는 유용한 명령어를 선발해서 사용 목적별로 정리했다고 한다.

그렇다. 리눅스 마스터 자격증을 보면서 공부했지만 머리에 남는 게 진심으로 없다. 오히려 실무 하면서 그때그때 구글링 하면서 사용했던 명령어들이 기억에 더 오래 남는다. 그렇게 익힌 명령어들은 아직까지도 쓰고 있다. 

 

그리고, 명령어 사용법을 '입문 편' 과 '참조 편'으로 나워서 처음 사용해보는 사용자나 중급자들도 다양하게 이용 가능하도록 구성되어 있다.

사실 리눅스의 수많은 명령어들을 다 외우는건 불가능하다. 적어도 나는 그렇다.

"입문 편" 과 "참조 편" 은 이렇게 구성되어 있어요!

명령어를 외우려고 하기 보다는 자연스럽게 사용하면서 익숙해지면서 이럴 때는 이런 걸 사용하는구나, 사용했구나 라는 것을 생각할 수 있을 정도로만 알면 될 것 같다. 정확한 명령어는 구글이 다 찾아주니까! 그러니 처음 이 책을 볼 때는 가볍게 1회독을 하는 것을 추천한다. 자세히 보며 공부하기보다는 느낌만 알아 가는 정도로~

 

본문 내용을 보자.

파일을 찾아보자.

파일을 찾는 챕터다.

눈에 보이는 것처럼 명령어들은 어려운 영어단어는 없다. find 명령어를 통해 디렉터리 ~ 아래에 있는 모든 파일과 디렉터리를 대상으로 하며, 파일 이름이 cocktail인 파일을 찾아 -print 즉 화면에 파일의 위치를 출력하라는 뜻이다.

 

어떤가? 굉장히 쉽지 않은가? 형식과 조합에만 익숙해지면 원하는 명령어를 수십 수백번 쳐보면서 자연스럽게 익히고 원하는 결과를 더 효율적인 방법으로 찾아낼 수가 있다.

 

결국 리눅스란 내가 하고자 하는 행위의 영어단어와 형식, 그리고 조합으로 원하는 결과물을 만들어 가는 과정이다.

생각했던 바를 명령어를 통해서 결과물을 뽑아내면 그 순간의 희열은 짜릿하다.

 

다시 한번 강조하지만, 개발 환경은 지속적으로 클라우드 컴퓨팅이 기본이 되어 가고 있다.

개발자로서 공부해야 할 것이 너무나 많지만, 리눅스는 놓치지 말자.

(리눅스 하다 보면 네트워크에 대한 이해도 생긴다!!)

 

나와 같은 주니어 개발자들은, 육하원칙의 6처럼 꼭 배워야 하는 6가지가 있다.

알고리즘 / 자료구조 / 네트워크 / 운영체제 / 데이터베이스 / 리눅스

 

하나하나 정복해 가며 인정 받는 개발자가 되도록 하자!!

+ Recent posts