MLops

패스트캠퍼스 챌린지 24일차

Laftel 2022. 2. 16. 13:39
반응형


1. Prerequisite 개념 간단 정리
쿠버네티스 관련 사전 지식이 다소 필요합니다. 익숙지 않다면 SeldonCore 의 사용 방식에 대해서만 익히고 넘어가셔도 충분합니다.
1) Custom Resource
Official docs

https://kubernetes.io/ko/docs/concepts/extend-kubernetes/api-
extension/custom-resources/

Custom Resource (CR) 은 쿠버네티스의 API 의 확장판입니다.
쿠버네티스에서 기본적으로 관리하는 리소스들에는 Pod, Deployment, Service,PersistentVolume 등이 있습니다.
하지만 유저가 직접 정의한 리소스를 쿠버네티스의 API 를 사용해서 관리하고 싶은경우에는 Custom Resource 와 해당 CR 의 LifeCycle 과 동작을 관리할 Controller (혹은 API Server) 를 구현 후 쿠버네티스 클러스터에 배포해야 합니다.
CR 을 클러스터에 등록하는 방법에는 Custom Resource Definition (CRD)방식과 API Aggregation (AA) 방식 두 가지가 있지만, 이번 강의에서 다루는모든 모듈은 CRD 방식을 사용합니다.

CRD 방식은 CR 을 관리할 Custom Controller 를 구현하고 배포하여 사용하게 되며, Controller 는 대부분 Operator pattern 으로 개발됩니다.
한 마디로 압축하면 쿠버네티스에서 default 로 관리하지는 않지만, 배포된 Custom
Controller 에 의해 쿠버네티스에서 관리되고 있는 리소스들이라고 할 수 있습니다.
2) Operator pattern
Official docs
https://kubernetes.io/ko/docs/concepts/extend-kubernetes/operator/
Controller
Desired State 와 Current State 를 비교하여, Current State 를 Desired State에 일치시키도록 지속적으로 동작하는 무한 루프
https://kubernetes.io/ko/docs/concepts/architecture/controller/
Operator
Controller pattern 을 사용하여 사용자의 애플리케이션을 자동화하는 것 주로 CR 의 Current/Desired State 를 지속적으로 관찰하고 일치시키도록 동작하는 역할을 위해 사용됩니다.
Operator 개발 방법
Operator 개발에 필요한 부수적인 작업이 자동화되어있는 Framework 를 활용하여 개발
kubebuilder, KUDO, Operator SDK
앞으로 다룰 seldon-core, prometheus, grafana, kubeflow, katib 를 포함해 쿠버네티스 생태계에서 동작하는 많은 모듈들이 이러한 Operator 로 개발되어 있습니다.
3) Helm
Official docs
https://helm.sh/docs/
쿠버네티스 모듈의 Package Managing ToolUbuntu OS 의 패키지 관리 도구 apt , Mac OS 의 패키지 관리 도구 brew ,
Python 패키지 관리 도구 pip 와 비슷한 역할
하나의 쿠버네티스 모듈은 다수의 리소스들을 포함하고 있는 경우가 많습니다.

즉, a.yaml , b.yaml , c.yaml , ... 등 많은 수의 쿠버네티스 리소스 파일들을 모두 관리해야 하기에 버전 관리, 환경별 리소스 파일 관리 등이 어렵습니다.
Helm 은 이러한 작업을 템플릿화시켜서 많은 수의 리소스들을 마치 하나의 리소스처럼관리할 수 있게 도와주는 도구라고 할 수 있습니다.
Helm manifest 는 크게 templates 와 values.yaml 로 이루어져 있으며, templates폴더에는 해당 모듈에서 관리하는 모든 쿠버네티스 리소스들의 템플릿 파일이 보관됩니다.
또한 values.yaml 이라는 인터페이스로부터 사용자에게 값을 입력받아 templates의 정보와 merge 하여 배포됩니다.

2. Seldon Core 설치
Official docs
https://docs.seldon.io/projects/seldon-core/en/latest/workflow/install.html
Prerequisites
쿠버네티스 환경 (v1.18 이상)
minikube
kubectl
Helm 3
Ingress Controller
Ambassador
Python 환경
python 3.6 이상
pip3
1) minikube

minikube start --driver=docker --cpus='4' --memory='4g'

2) helm

Seldon core 실습 자료 4

helm version v3.5.4
v3.0 이상

# https://github.com/helm/helm/releases 에서 link 확인
wget <URI>
# 압축 풀기
tar -zxvf helm-v3.5.4-linux-amd64.tar.gz
# 바이너리 PATH 로 이동
mv linux-amd64/helm /usr/local/bin/helm
# helm 정상 동작 확인
helm help

2) ambassador
chart version : ambassador-6.9.1

# ambassador 를 install 하기 위해 public 하게 저장된 helm repository 를 등록
helm repo add datawire https://www.getambassador.io
# helm repo update
helm repo update
# helm install ambassador with some configuration
helm install ambassador datawire/ambassador \
--namespace seldon-system \
--create-namespace \
--set image.repository=quay.io/datawire/ambassador \
--set enableAES=false \
--set crds.keep=false
# 정상 설치 확인
kubectl get pod -n seldon-system -w
kubectl get pod -n seldon-system

3) Seldon-core
chart version : seldon-core-operator-1.11.0

helm install seldon-core seldon-core-operator \
--repo https://storage.googleapis.com/seldon-charts \
--namespace seldon-system \


--create-namespace \
--set usageMetrics.enabled=true \
--set ambassador.enabled=true


#직장인인강 #직장인자기계발 #패스트캠퍼스후기#온라인패키지:머신러닝서비스구축을위한실전MLOps#머신러닝서비스구축을위한실전MLOps온라인패키지Online.
https://bit.ly/37BpXiC

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.



반응형