Welcome! ๐Ÿ™‹โ€โ™‚๏ธ View more

Engineering ๐Ÿ’ป/MLOps

[MLOps] Windows ํ™˜๊ฒฝ์—์„œ kubeflow ์„ค์น˜ํ•˜๊ธฐ

DeepFlame 2023. 3. 27. 19:00

์ตœ๊ทผ ๋ถ€์„œ๋ฅผ ์˜ฎ๊ธฐ๊ฒŒ ๋˜๋ฉด์„œ MLOps ์—…๋ฌด๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ํšŒ์‚ฌ์—์„œ ์ค‘์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํˆด์ด Kubeflow์ธ๋ฐ, ์ด ํˆด์— ๋Œ€ํ•ด์„œ ์‹ฌ์ธต์ ์œผ๋กœ ํƒ๊ตฌํ•˜๊ณ ์ž ๊ฐœ์ธ์ ์œผ๋กœ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทผ๋ฐ... ์ด๊ฒŒ ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ์ง€๊ฐ€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.... ์ €๊ฐ™์€ ์‚ฝ์งˆ์„ ํ•˜์ง€ ๋งˆ์‹œ๋ผ๊ณ  ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.... 

 

์‹œ์ž‘! ๐Ÿคธ‍โ™‚๏ธ

์šฐ์„  ์–ด๋–ป๊ฒŒ ์„ค์น˜๋ฅผ ํ•˜๋Š”์ง€๋Š” kubeflow ๊ณต์‹ ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋‚ซ์Šต๋‹ˆ๋‹ค. (์—ฌ๊ธฐ์ €๊ธฐ ์ฐธ๊ณ ํ•˜๋ฉด์„œ ์ง„ํ–‰ํ–ˆ!๋Š”๋ฐ ์•ˆ ๋˜๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ๋งŽ๋”๋ผ... )

๊ณต์‹ ํŽ˜์ด์ง€๋Š” ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”. ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „๋„ ์•Œ์•„์„œ ์—…๋ฐ์ดํŠธ๋˜๋‹ˆ ์—ฌ๊ธฐ์„œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

https://www.kubeflow.org/docs/started/installing-kubeflow/

 

Installing Kubeflow

Deployment options for Kubeflow

www.kubeflow.org

 

์—ฌ๊ธฐ ๋ณด์‹œ๋ฉด 2๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ kubeflow๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ณด์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ windows๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 2๋ฒˆ์งธ manifest๋ฅผ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. (์ „๋ฌธ๊ฐ€์šฉ... ใ…Žใ…Ž)

๋งํฌ๋ฅผ ํด๋ฆญ, ํด๋ฆญํ•˜๋‹ค๋ณด๋ฉด kubeflow manifest github๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” v1.6๋ฒ„์ „์„ ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
Readme ํŒŒ์ผ์„ ํ™•์ธํ•˜๋‹ค๋ณด๋ฉด kubeflow๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ์„ ํ–‰ ์กฐ๊ฑด์ด ๋‚˜ํƒ€๋‚˜์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ ์„ ํ–‰ ์กฐ๊ฑด์„ Windows์—์„œ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜ ๋‚ด์šฉ์„ ์‹คํ–‰ํ•ด์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • Kubernetes: Docker Desktop ์„ค์น˜
  • kustomize, kubectl ๊ฐ ์ตœ์‹  ๋ฒ„์ „ ์„ค์น˜

์‚ฌ์‹ค kustomize, kubectl ๋ชจ๋‘ windows์— ์„ค์น˜ํ•ด์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€์ด๋“œ๊ฐ€ linux ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์–ด์žˆ์–ด, ๋ช‡๊ฐ€์ง€ ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ทธ๋ƒฅ wsl์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ •์‹  ๊ฑด๊ฐ•์— ์ข‹์Šต๋‹ˆ๋‹ค. ใ…Žใ…Ž)

 

๊ฒฐ๋ก ์€! ์•„๋ž˜ ๊ณผ์ •์„ ํ†ตํ•ด์„œ Kubeflow๋ฅผ ์„ค์น˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿค—

  1. Windows์—์„œ WSL ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ
  2. Docker Desktop ์„ค์น˜ํ•˜๊ธฐ
  3. kustomize, kubectl ์„ค์น˜ํ•˜๊ธฐ
  4. WSL ํ™˜๊ฒฝ์—์„œ Kubeflow ์„ค์น˜ํ•˜๊ณ , UI ํ™•์ธํ•˜๊ธฐ

 

 

1. Windows์—์„œ WSL ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ


WSL ์„ค์น˜์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ๋งŽ์€ ๊ณณ์—์„œ ์ œ๊ณต๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ œ๊ฐ€ ์ฐธ๊ณ  ํ–ˆ๋˜ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

ํŒ์„ ์ข€ ๋“œ๋ฆฌ์ž๋ฉด ์ด๊ฒŒ ์„ค์ •์ด ์ž˜๋ชป๋˜๋ฉด ๋‹ค์‹œ ์‹œ์ž‘์„ ์ž์ฃผ ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Œ์— ์ค€๋น„๋ฅผ ํ•˜๊ณ  ์ฐจ๊ทผ์ฐจ๊ทผ ์ง„ํ–‰ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.  

https://cpuu.postype.com/post/10265353

 

Windows 10์— WSL2 ์œผ๋กœ Ubuntu ์„ค์น˜

1. ์œˆ๋„์šฐ ํ„ฐ๋ฏธ๋„ ์„ค์น˜ Microsoft Store์—์„œ windows termial ์„ค์น˜ windows terminal ์„ ๊ฒ€์ƒ‰ํ•œ ํ›„ ์šฐํด๋ฆญํ•˜์—ฌ '๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰' ์œ„์™€ ๊ฐ™์ด ํƒญ์— "๊ด€๋ฆฌ์ž"๋ผ๊ณ  ๊ธฐ์žฌ๋˜์–ด ์žˆ์–ด์•ผ ์ง„ํ–‰ ๊ฐ€๋Šฅ 2. wsl ํ™œ์„ฑํ™” ์•„

cpuu.postype.com

 

 

 

2. Docker Desktop ์„ค์น˜


ํ•ด๋‹น ๋‚ด์šฉ๋„ ๋งŽ์€ ๊ณณ์— ์ •๋ฆฌ๊ฐ€ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. 
์•„๋ž˜๋Š” ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ์•Œ๋ ค์ฃผ๋Š” ๋‚ด์šฉ์„ ์ฒจ๋ถ€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

https://docs.docker.com/desktop/install/windows-install/

 

Install Docker Desktop on Windows

 

docs.docker.com

https://docs.docker.com/desktop/kubernetes/

 

Deploy on Kubernetes

 

docs.docker.com

 

์˜์–ด๊ฐ€ ์–ด๋ ค์šฐ๋ฉด ์•„๋ž˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”. ใ…Žใ…Ž 

https://gurumee92.tistory.com/300

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ•ํ•˜๊ธฐ (2) Docker Desktop

Docker Desktop์ด๋ž€? macOS ํ˜น์€ Windows์—์„œ Docker๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ์„ค์น˜๋œ Docker Desktop์„ ์ด์šฉํ•˜์—ฌ ๋กœ์ปฌ kubernetes

gurumee92.tistory.com

 

๐Ÿ’ก ๋งŒ์•ฝ wsl์—์„œ docker ๋ช…๋ น์–ด๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด?

  1. wsl --shutdown ํ›„์— ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋ด…๋‹ˆ๋‹ค.
  2. setting > General์— "Use the WSL 2 based engine ... "  ์˜ต์…˜์„ ํ™œ์„ฑํ™” ํ•ด๋ด…๋‹ˆ๋‹ค.

๐Ÿ’ก Resource ๋ณ€๊ฒฝ์„ ๋ฏธ๋ฆฌํ•ด์ฃผ์ž

Resource๊ฐ€ ๋„ˆ๋ฌด ์ ๊ฒŒ ์žกํ˜€์žˆ๋‹ค๋ฉด kubeflow๋ฅผ ์„ค์น˜๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ฑฐ๋‚˜, pod๊ฐ€ pending ์ƒํƒœ์— ๊ฐ‡ํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋Ÿ‰์„ ๋„‰๋„‰ํžˆ ์„ค์ •ํ•ด๋‘ก์‹œ๋‹ค.

 

3. kustomize, kubectl ์„ค์น˜ํ•˜๊ธฐ


์šฐ์„  wsl์— ๋“ค์–ด๊ฐ€์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
home์— kubeflow ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ํŒŒ์ผ๋“ค์„ ๊ด€๋ฆฌํ•ด๋ด…์‹œ๋‹ค.

cd ~
mkdir kubeflow
cd kubeflow

 

kustomize ์„ค์น˜ (์ฐธ๊ณ : https://kubectl.docs.kubernetes.io/installation/kustomize/binaries/)

curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"  | bashs
sudo kustomize /usr/loca/bin/
kustomize version

 

kubectl ์„ค์น˜ (์ฐธ๊ณ : https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client

 

 

 

4. WSL ํ™˜๊ฒฝ์—์„œ Kubeflow ์„ค์น˜ํ•˜๊ณ , UI ํ™•์ธํ•˜๊ธฐ


์ž ์ด์ œ ๋ชจ๋“  ์„ ํ–‰์กฐ๊ฑด์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 
๋‹ค์‹œ kubeflow manifests github๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

์šฐ์„  git clone์„ ํ†ตํ•ด์„œ manifest๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

git clone https://github.com/kubeflow/manifests.git
# ์›ํ•˜๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์„ค์ •
git checkout <branch>
cd manifests

 

์ญˆ์šฑ ์ฝ์–ด๋ณด๋ฉด ํ•œ ๋ฒˆ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ณ , ๊ฐ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ํ•˜๋‚˜ํ•˜๋‚˜ ํŒŒ์•…ํ•˜์ง€๋Š” ๋ชป ํ•œ ์ƒํ™ฉ์ž„์œผ๋กœ ํ•œ ๋ฒˆ์— ์„ค์น˜ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ด…์‹œ๋‹ค.
(kubeflow์˜ ๋‹ค์–‘ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๊ฝค ์˜ค๋ž˜๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.)

 

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ UI๋ฅผ ๋„์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
(istio๋Š” kubeflow์˜ ๊ฐ ์š”์†Œ๋“ค์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” Kubeflow์˜ UI๋ฅผ forwarding ํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž๊ฐ€ ์›น์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.)

์ด๊ฒŒ ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค๊ณ  ํ•˜๋ฉด docker desktop์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ œํ•œ๋˜์–ด์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ตœ์†Œ 8GB๊นŒ์ง€๋Š” ๋Š˜๋ ค์ค์‹œ๋‹ค.

kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80

 

localhost:8080 ์œผ๋กœ ์ ‘์†ํ•˜๋ฉด ๋กœ๊ทธ์ธ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

 

๊ธฐ๋ณธ email/password์€ readme์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๊ธฐ๋ณธ ์ด๋ฉ”์ผ๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด... ์ง ! ์ด๋ ‡๊ฒŒ ์›นํ™”๋ฉด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜