도서 리뷰

도서) 그림과 실습으로 배우는 도커 & 쿠버네티스 내용 정리 및 리뷰

하나의묵 2023. 2. 2. 18:30

프로젝트를 전체적으로 관리하고 운영하다 보니 자연스럽게 프로젝트 운영에 사용하며,

현재 프로젝트를 구성하는 쿠버네티스, 도커에 대한 학습 필요성을 느꼈습니다.

 

회사에서 도서지원을 신청하여 그림과 실습으로 배우는 도커 & 쿠버네티스(저자:오가사와라 시게타카, 출판:위키북스)

라는 책을 구매하였고, 작년 말에 정리했던 내용이지만 정리해서 글로 남겨봅니다.

 

제가 도커에 대해서는 어느정도 알고 있기도 하고, 당장 운영에서 도커로 이미지를 만드는 것은 어느 정도 익숙해져 있었기 때문에 실습과, 도커내용은 제외하고 쿠버네티스 관련 부분만 빼서 정리하였습니다.

 

Kubernetes 란? 

: 간단하게 쿠버네티스를 요약하자면 yaml(매니페스트)파일에 바람직한 상태 (원하는 상태)를 지정하고 그 상태를 유지하  도록 하는 기술이다.

 

1. 노드

: 쿠버네티스는 기본적으로 Node들을 통해서 제어, 동작을 수행한다.

  노드는 제어를 담당하는 마스터노드, 동작을 담당하는 워커 노드로 나누어진다.

  마스터노드, 워커노드를 합쳐 클러스터라고 한다.

 

마스터노드 (제어)

  • 도커엔진이 존재하지 않으며, 컨테이너를 실행하지 않는다,
  • etcd DB이 존재(쿠버네티스 클러스터 정보 파일들 저장)

구성

  • kube-ApiServer : 외부통신 프로세스(kubectl 명령실행)
  • kube-Controller-Manager : 컨트롤러 관리 및 실행.
  • kube-scheduler : Pod를 워커노드에 할당(적절한 노드를 찾아 스케쥴링)
  • cloud-controller-manager : 클라우드 제공자 서비스와 연동

워커노드 (동작)

  • 컨테이너 실행

구성

  • kube-let : kube-scheduler 와 연동하여 파드 배치, 실행, 파드상태 모니터링 기능
  • kube-proxy : 네트워크 라우팅

2. 로드밸런서

: 사용자 트래픽 사용량을 분배하여 각 Service에 할당, 스케일 업, 축소 등 기능을 수행한다.

 

3. 쿠버네티스 리소스

 

파드(Pod, 컨테이너 + 볼륨)

  • 쿠버네티스의 컨테이너 단위
  • Pod하나에 컨테이너 여러개도 가능.

서비스(Pod의 모음)

  • 서비스는 고정된 IP를 자동으로 부여받는다 (Cluster IP)
  • 외부에서 IP로 접근을 하면 맨 처음 로드밸런서가 서비스로 분배해 주는데 이때, Cluster IP를 사용하며, 서비스에서도 부하 수준에 따라 각 Pod들에게 알맞게 트래픽을 분산한다.
  • 단, 서비스가 통신(트래픽)을 분배하는 것은 워커노드 내부에서로 한정.
  • 여러 워커노드간 통신분배는 로드밸런서와 Ingress가 담당.

레플리카 셋(Replica Set)

  • 서비스는 요청분산 처리를 하고, 레플리카 셋은 파드의 수를 유지관리 하는 기능 수행.
  • 특정 장애나 이벤트가 발생 하여 Pod의 문제가 발생했을 때 Pod수를 유지 함.
  • 레플리카 셋은 대부분 디플로이먼트(Deployment)와 같이 사용.
  • 레플리카 셋이 관리하는 파드(Pod)를 레플리카 라고함.

디플로이먼트(Deployment)

  • 레플리카 셋의 상위개념이라고 볼 수 있음. ( 레플리카셋을 생성하는 정의)
  • 파드의 배포를 관리하는 요소(롤링업데이트 등) 조작, 파드의 이미지 등 파드 정보를 가지고 있음.

 

 

* 총평

: 해당 포스팅내용에는 작성하진 못했지만 도커에 대한 내용 및 쿠버네티스에 대한 내용을 알기 쉽게 그림과 

함께 설명하여 이해하기 쉬웠고, 이해하기 어려운 여러 리소스들의 관계를 알기 쉽게 표현하여서 좋았습니다.

또한, 실습내용을 함께 구성하여 처음 도커, 쿠버네티스를 활용하여 프로젝트를 구성하시는 분들에게는 매우

좋은 책이라고 할 수 있습니다. 하지만 기본적인 지식을 가지고 있으시고, 좀 더 깊은내용을 얻고자하는 분들

이라면, 다른 책을 추천드리고 싶습니다.