ihp***
2022-02-20

머신러닝 애플리케이션에서 ‘모델을 만드는 것’은 단지 작은 과정일 뿐이다. 전체 과정에는 개발, 오케스트레이션, 배포, 포터블하고 확장 가능한 머신러닝 워크로드를 운영하는 것, 모두가 포함된다. 이 책은 쿠브플로 프로젝트를 계획하고 실행하는 운영법을 통해 어떻게 쿠버네티스 워크플로를 포터블하고 확장 가능하도록 만드는지 안내한다.
이책에 대하여
쿠브플로는 확장 가능하고 포터블한 머신러닝 작업 워크로드를 개발, 오케스트레이션, 배포, 운영하기 위한 오픈소스 쿠버네티스 네이티브 플랫폼이고 구글의 내부 ML 파이프라인에 기초한 클라우드 네이티브 플랫폼입니다.이 책은 쿠브플로를 배포하고 운영할 떄 데브옵스와 MLOps에서 필요한 내용에 대한 책입니다. 이 책은 크게 3가지로 나뉩니다.
첫번째는 쿠브플로 핵심 기능과 아키텍처 이해에 중점을 둡니다. 머신러닝의 아키텍처, 쿠브플로 아키텍처, 쿠브플로 배포를 계획하는 방법에 대해서 알 수 있습니다.
두번째는 온프레미스 방식과 주요 클라우드 벤더에서 쿠버플로 1.0.2를 설치하는 방법을 설명합니다. 또한, 쿠브플로를 온프레미스와 각각의 주요 클라우드 플랫폼에서 배포하기 위해 필요한 단계를 상세히 알아볼 수 있습니다. 마지막에는 KFServing을 이용해서 인퍼런스를 위해 모델을 프로덕션으로 배포하는 방법을 알 수 있습니다.
세번째는 부록으로 인프라스트럭처의 핵심 개념, istio, control plain, 쿠버네티스의 핵심 개념에 대해서 알아볼 수 있습니다.
소스코드 : https://github.com/jpatanooga/kubeflow_ops_book_dev
온프레미스에 쿠브플로 설치
1, 2, 3장은 쿠브플로와 관련된 이론에 대해서 설명하고 4장부터 본격적인 실습을 진행할 수 있습니다. 기본적인 쿠버네티스 클러스터 환경이 구축되어 있다는 가정하에 진행하고 있습니다. Mac을 기준으로 kubectl 설치 및 사용, kubectl 콘텍스트 설정, 도커의 사용에 대해서 설명하고 있습니다. 그리고 쿠버플로의 설치 과정에 대해서 설명합니다. 클러스터를 구성할 때 고려사항, 게이트웨이 호스트 접근, 액티브 디렉터리 통합과 사용자 관리 등에 대해 설명하고, 실제 설치하는 과정에 대한 명령어들이 나와있어 실습해볼 수 있게 되어있습니다.
구글 클라우드 쿠브플로 운영
구글 클라우드 플랫폼에 대해서 글로 설명하고, 구글 클라우드에 쿠브플로를 어떻게 설치해야 하는지 브라우저 캡쳐본 및 명령줄이 상세하게 나와있습니다.
아마존 웹 서비스 쿠브플로 운영
AWS의 개요, AWS EKS 서비스 등에 대해서 설명하고, aws cli 설치 및 AWS EKS 서비스를 활용해서 kubeflow를 설치하는 방법에 대해서 설명합니다.
애저에서 쿠브플로 운영
애저도 마찬가지로 애저의 개요, 개념, 서비스들에 대해서 설명합니다. 또한, 애저의 여러 스토리지 종류, 리소스 및 리소스 그룹, AKS 서비스들에 대해서 글로 설명하고 있습니다. 그리고 애저 명령줄 인터페이스를 통해서 AKS 클러스터를 생성하고 쿠브플로를 배포하는 방법에 대해서 명령어로 자세하게 설명하고 있습니다.
정리
진행해볼 수 있는 실습은 온프레미스, 주요 클라우드사(AWS, Azure, GCP)에서 클러스터(or 관리형)를 생성하고 kubeflow를 구축해보는 실습을 진행할 수 있었습니다. 클러스터를 구축하기 위한 도커 컨테이너 런타임 kubectl 명령줄 등에 대한 설명 및 구축은 간단하게 나와 있어 어느정도 이해가 필요해 보입니다.개념 설명으로는 부록을 먼저 보면 좋을 것 같습니다. 부록에는 인프라스트럭처, 쿠버네티스, 이스티오 등에 관한 설명들을 읽어보고 1, 2, 3 장에서 kubeflow의 개념들을 이해한 뒤, 마지막에 8장의 모델 서빙과 통합(KFServing)에 대해서 공부하면 좋을 것 같습니다.