Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

[Book] The DevOps 2.3 Toolkit: Kubernetes

Docker 유저 그룹에서 Kubernetes 그룹 스터디를 진행해서 참가했다. 재작년인가 인프라 관련 도구에 대해서 살펴보는 스터디도 했었는데 그때는 오케스트레이션 도구가 춘추전국시대였는데 1년 사이에 Kubernets가 완전한 승자가 된 분위기라 Subicura님의 주도로 Kubernetes 스터디를 진행했다. 이 책을 스터디 교재로 진행해서 1월 23일부터 14회 동안 진행하고 지난주에 책을 다 보고 스터디가 끝났다.

인프라 도구들이 대개 그렇듯이 오케스트레이션 도구도 제대로 연습하고 장단점을 느껴보려면 운영할 프로그램이 있어야 해서 서비스의 ping을 검사하는 마이크로 서비스를 같이 만들었다. 굳이 마이크로서비스로 할 필요가 없을 정도로 간단한 애플리케이션이었지만 나한테는 Go 언어도 좀 써보고 재미있었다. 물론 초기 스터디 계획처럼 이 마이크로 서비스가 잘 만들어져서 Kubernetes로 운영해보면서 마이크로서비스를 운영할 때의 장단점을 느껴보는 정도까지는 가지 못했다.

저자인 Viktor Farcic은 데브옵스 책을 계속 쓰고 있는데 2.0 툴킷은 번역서가 출간되었고 The DevOps 2.1 Toolkit: Docker Swarm, The DevOps 2.2 Toolkit: Self-Sufficient Docker Clusters에 이은 버전이다. 이 책을 보기 전에는 글이나 세미나 등에서만 보았을 뿐 Kubernets를 실제로 써본 적은 없었다. 프로덕션뿐만 아니라 로컬에서도 돌려보지 않은 상태로 스터디를 시작했고 취향에 따라 여러 오케스트레이션 도구를 고민해야 했던 1여 년 전과는 달리 이젠 컨테이너로 인프라를 운영하려면 Kubernetes를 반드시 알아야겠다고 생각해서 스터디를 시작했다. 설사 AWS나 Google에서 제공하는 다른 컨테이너 서비스를 쓴다고 하더라도 최소한 Kubernetes의 장단점을 알고 써야겠다는 생각이었다.

보통 그룹스터디를 하면 책을 찬찬히 보지는 못하는데 원서라서 좀 힘들었지만, 이번에는 책을 처음부터 다 읽어보고 예제도 거의 다 따라 해 봤다. 책은 Kubernetes를 처음 사용해보는 사람들을 대상으로 하고 있다. 그래서 Kubernetes의 사용법을 알려주는 데 집중되어 있고 Kubernetes를 운영하는 노하우나 마이크로서비스를 운영하면서 필요한 지식, Kubernetes 내부 등은 많이 다루지 않고 있다. 대신 Kubernetes를 처음 배우기에는 구성이 괜찮다고 생각하고 있다.

Kubernetes를 이해하기 쉽게 가장 작은 단위인 Pod부터 ReplicaSet, Service, Deployment 순으로 살펴보고 운영하는데 필요한 Ingress, Volume, ConfigMap, Secret을 하나씩 다뤄주고 있어서 운영에 필요한 Kubernetes의 리소스와 관계를 이해할 수 있다. 도구 자체가 간단한 도구가 아니라서 책을 읽고 예제를 따라 한 정도로는 Kubernetes를 이해하기 어렵고 직접 운영하거나 자신의 서비스를 Kubernetes를 써보면서 연습을 해봐야 제대로 감을 잡을 수 있었지만, 그 가이드라인을 세워주는 데는 나쁘지 않았다.

뒷부분에서는 실제 프로덕션에 운영과 관련된 내용을 설명한다. Kubernetes 클러스터에 구성을 도와주는 kops와 Namespace, 권한관리 등 Kubernetes를 다 몰라서 빠진 부분이 뭐가 있는지는 모르지만 Kubernetes 클러스터를 운영하려고 할 때 궁금했던 내용 대부분의 방향을 잡아주고 있다.

원서라서 스터디가 아니었으면 못 봤을지도...

2018/05/19 16:32 2018/05/19 16:32