Kubeflow ã Docker Desktop for Mac ãŸã㯠Windows ã§ãã€ãã£ãã«å®è¡ãã
ããã¯ãDocker Captainã§ãããShell New Energiesã®ãã«ã¹ã¿ãã¯ãœãããŠã§ã¢ããã³ã€ã³ãã©ã¹ãã©ã¯ãã£ã¢ãŒããã¯ãã§ããAlex Iankoulskiã«ããã²ã¹ãæçš¿ã§ãã ããã§è¡šæãããèŠè§£ã¯åœŒèªèº«ã®ãã®ã§ãããã·ã§ã«ãããã«ãŒã«ãã£ãŠåå¯Ÿãæ¯æããããŠããŸãããÂ
ãã®ããã°ã§ã¯ãMacãŸãã¯Windowsçšã®Dockerãã¹ã¯ãããã䜿çšããŠKubeflowãå®è¡ããæ¹æ³ã玹ä»ããŸãã ãããç°¡åã«ããããã«ã Githubã§èŠã€ããããšãã§ããDockerãããžã§ã¯ãã«äŸåããã䜿çšããŸããã
æ ¹æ
ã¯ã©ãŠãæä»£ã®éçºã¯ãŒã¯ãããŒããã¹ãç°å¢ãšãªã¢ãŒãç°å¢ãžãšå°æ®»å€åããŠããã«ãããããããéçºè ã®ããŒã«ã«ãã·ã³ã§ã¯äŸç¶ãšããŠããªãã®éã®äœæ¥ãšå®éšãè¡ãããŠããŸãã ã¹ã±ãŒã«ããŠã³æ©èœã«ãããããŒã«ã«ã§ã¯ã©ãŠãå±éãæš¡å£ã§ããå®å šã§åé¢ãããç°å¢ã§ãã¬ã€ããè¿ éã«åŠç¿ãã倿Žãå ããããšãã§ããŸãã ãã® çè«çæ ¹æ ã®è¯ãäŸã¯ã Kubeflow ãšMiniKFã«ãã£ãŠæäŸãããŠããŸãã
æŠèŠ
Kubeflowã2018幎ã«Googleã«ãã£ãŠæåã«ãªãªãŒã¹ãããŠä»¥æ¥ãç¹ã«æ©æ¢°åŠç¿ãã€ãã©ã€ã³ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®ããã®ããŒã¿ãµã€ãšã³ã¹ã®äžçã§ã¯ãæ¡çšãå€§å¹ ã«å¢å ããŠããŸãã Kubeflowããã¹ã¯ããããšãµãŒããŒã®äž¡æ¹ã«å±éããã«ã¯ã å ¥é ã¬ã€ãã§èª¬æãããŠããããã«ãããŸããŸãªæ¹æ³ããããŸãã ãã ããMacãšWindowsã®ãã¹ã¯ãããå±éã¯ã Vagrant ãš VirtualBoxã䜿çšããä»®æ³ãã·ã³ã®å®è¡ã«äŸåããŠããŸãã MacãŸãã¯PCã«VagrantãšVirtualBoxãã€ã³ã¹ããŒã«ããããªãããKubeflowãå®è¡ãããå Žåã¯ãåã«Dockerã«äŸåããããšãã§ããŸãã ãã®èšäºã§ã¯ãKubeflow ã Docker ãã¹ã¯ãããã«ãã€ãã£ãã«ãããã€ããæ¹æ³ã«ã€ããŠèª¬æããŸããÂ
ã»ããã¢ãã
åæ æ¡ä»¶
Kubeflow 㯠Kubernetes ãš Docker ã©ã³ã¿ã€ã ã«å€§ããäŸåããŠããŸãã Mac ãŸã㯠Windows ã§ãããã®èŠä»¶ã®äž¡æ¹ãæºããæãç°¡åãªæ¹æ³ã¯ã Docker Desktop (ããŒãžã§ã³ 2.1.x.x 以é) ãã€ã³ã¹ããŒã«ããããšã§ãã Docker Desktop ã®èšå®ã§ã[Kubernetes] ã¿ãã«ç§»åãã[Kubernetes ãæå¹ã«ãã] ããªã³ã«ããŸãã

Docker Desktop ã§ Kubernetes æ©èœãæå¹ã«ãããšãããŒã«ã« ãã·ã³äžã«åäžããŒãã® Kubernetes ã¯ã©ã¹ã¿ãŒãäœæãããŸãã
ãã®èšäºã§ã¯ãMac çš Docker ãã¹ã¯ãããã§ Kubeflow ãã»ããã¢ããããããã®è©³çްãªãã¥ãŒããªã¢ã«ãæäŸããŸãã Linux ã³ã³ãããŒã䜿çšã㊠Docker Desktop for Windows ã« Kubeflow ããããã€ããã«ã¯ã次㮠2 ã€ã®è¿œå ã®åææ¡ä»¶ãå¿ èŠã§ããÂ
- Linux ã·ã§ã« â Kubeflow ã®ã€ã³ã¹ããŒã«æé ãã bash ã³ãã³ããå®è¡ããŸããÂ
- Kfctl ããã³ kubectl CLI â Kubeflow ãããã€ãåæåãçæãããã³é©çšãã
ãããã®äŸåé¢ä¿ã®äž¡æ¹ãæºããæãç°¡åãªæ¹æ³ã¯ãkfctl ãŠãŒãã£ãªãã£ãš kubectl ãŠãŒãã£ãªãã£ãæã€ Linux ã³ã³ãããŒãå®è¡ããããšã§ãã ãã®ç®çã®ããã«ãDocker ã«äŸåãããããžã§ã¯ã ãäœæãããŸããã 2ã€ã®CLIã䜿çšå¯èœãªç¶æ ã§bashã·ã§ã«ãèµ·åããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
docker run -it --rm -v <kube_config_folder_path>:/root/.kube iankoulski/kfctl bash
Mac ãš Windows ã®äž¡æ¹ã®æ®ãã®ã»ããã¢ããæé ã¯åãã§ãã
ãªãœãŒã¹èŠä»¶
æ¢åã® Kubernetes ã¯ã©ã¹ã¿ãŒã« Kubeflow ããããã€ããããã® æé ã§ã¯ã次ã®ãªãœãŒã¹èŠä»¶ãæå®ããŸãã
- 4 åã®ä»®æ³ããã»ããµ
- 50 GBã¹ãã¬ãŒãž
- 12 GB ã®ã¡ã¢ãª
Docker ãã¹ã¯ãããã®èšå®ã¯ã以äžã«ç€ºãããã«ããããã®èŠä»¶ã«å¯Ÿå¿ããããã«èª¿æŽããå¿ èŠããããŸãã


èšå®ã¯ãããŒã«ã« ã³ã³ãã¥ãŒã¿ãŒã§å®è¡ãããŠããå¯èœæ§ã®ããã·ã¹ãã ã³ã³ãããŒããã®ä»ã®ã¢ããªã±ãŒã·ã§ã³ã«å¯Ÿå¿ããããã«ãæäœéå¿ èŠãªãªãœãŒã¹ä»¥äžã«èª¿æŽãããããšã«æ³šæããŠãã ããã
é å
kfctl_k8s_istio æ§æ ã®æé ã«åŸããŸã ã
- ãªãªãŒã¹ã¢ãŒã«ã€ãããã奜ã¿ã®ããŒãžã§ã³ãããŠã³ããŒãããŸãã
curl -L -o kfctl_v0.6.2_darwin.tar.gzhttps://github.com/kubeflow/kubeflow/releases/download/v0.6.2/kfctl_darwin.tar.gz - ã¢ãŒã«ã€ããæœåºããŸãã
tar -xvf kfctl_v0.6.2_darwin.tar.gz - ç°å¢å€æ°ãèšå®ããŸãã
export PATH=$PATH:$(pwd)
export KFAPP=localkf
export CONFIG=https://raw.githubusercontent.com/kubeflow/kubeflow/v0.6-branch/bootstrap/config/kfctl_k8s_istio.0.6.2.yaml - ãããã€ã®åæå:
kfctl init ${KFAPP} --config=${CONFIG}
cd ${KFAPP}
kfctl generate all -V
泚: äžèšã®æé 㯠Kubeflow ãªãªãŒã¹ 0.6.2 çšã§ãããäŸãšããŠäœ¿çšããããã®ãã®ã§ãã ä»ã®ãªãªãŒã¹ã§ã¯ãã¢ãŒã«ã€ãã»ãã¡ã€ã«åãç°å¢å€æ°ã®ååãšå€ãããã³ kfctl ã³ãã³ããè¥å¹²ç°ãªããŸãã ãããã¯ããªãªãŒã¹åºæã®å±éæé ã§äœ¿çšã§ããŸãã
- ããªãã« ã³ã³ãã㌠ã€ã¡ãŒãž (ãªãã·ã§ã³)
Kubeflow ã®ããŒã«ã«ã§ã®ãããã€ã容æã«ããããã«ãå¿ èŠãªãã¹ãŠã® Docker ã€ã¡ãŒãžãäºåã«ãã«ã§ããŸãã ã³ã³ãã㌠ã€ã¡ãŒãžããã·ã³ã«æ¢ã«ååšããå ŽåãDocker Desktop ã®ã¡ã¢ãªäœ¿çšéã¯äœããŸãŸã§ãã ãããã€æã«ãã¹ãŠã®ã€ã¡ãŒãžããã«ãããšãã¡ã¢ãªäœ¿çšçãå€§å¹ ã«ã¹ãã€ã¯ããDocker ããŒã¢ã³ã®ãªãœãŒã¹ãäžè¶³ããå¯èœæ§ããããŸãã ç»åãäºåã«ãã«ããããšã¯ã16GBã®ã©ãããããã§Kubeflowãå®è¡ããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã
ãã¹ãŠã®ã³ã³ãã㌠ã€ã¡ãŒãžãäºåã«ãã«ããã«ã¯ã$KFAPP/kustomize ãã©ã«ããŒã§æ¬¡ã® 1 è¡ã®ã¹ã¯ãªãããå®è¡ããŸãã
for i in $(grep -R image: . | cut -d ':' -f 3,4 | uniq | sed -e 's/ //' -e 's/^"//' -e 's/"$//'); do echo "Pulling $i"; docker pull $i; done;

ã€ã³ã¿ãŒãããæ¥ç¶ã«ãã£ãŠã¯ãå®äºãããŸã§ã«æ°åãããå ŽåããããŸãã Docker Desktop ã®ãªãœãŒã¹ãäžè¶³ããå Žåã§ããåèµ·åããŠã¹ã¯ãªãããå床å®è¡ãããšãäžæãããšããããæ®ãã®ã€ã¡ãŒãžã®ãã«ãåéãããŸããÂ
Windows ã§ kfctl ã³ã³ãããŒã䜿çšããŠããå Žåã¯ãäžèšã® 1 è¡ã®ã¹ã¯ãªããã倿ŽããŠãdocker ãã« ã³ãã³ãããã¡ã€ã«ã«ä¿åããä»»æã® Docker ã·ã§ã«ããå®è¡ããããšããå§ãããŸãã
- Kubeflow ãããã€ã Kubernetes ã«é©çšããŸãã
cd ${KFAPP}
kfctl apply all -V

泚: æ¢åã®ãããã€ã¡ã³ãã¯ã"kfctl delete all -V" ãå®è¡ããããšã§åé€ã§ããŸãã
- Kubeflow ãšã³ããªãã€ã³ããæ±ºå®ãã
ãšã³ããã€ã³ããç¹å®ããã«ã¯ãistio-system åå空éå
ã®ãã¹ãŠã®ãµãŒãã¹ãäžèŠ§è¡šç€ºããŸããkubectl get svc -n istio-system

Kubeflowã®ãšã³ããã€ã³ããµãŒãã¹ã¯ãNodePortäžã®å ¥å£ã²ãŒããŠã§ã€ãµãŒãã¹ãä»ããŠãããã©ã«ãã®HTTPããŒã(80)ã«æ¥ç¶ãããŠããŸããããŒãããŒãçªå·ã¯ 31380ã§ããKubeflowã«ã¢ã¯ã»ã¹ããã«ã¯ãhttp://127.0.0.1:31380
ã¯ããããŒã®äœ¿çš
Kubeflowäžå€®ããã·ã¥ããŒãã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããã

Kubeflow ã«å«ãŸããŠãããµã³ãã« ãã€ãã©ã€ã³ã® 1 ã€ãå®è¡ã§ããŸãã [ãã€ãã©ã€ã³]ã[å®éš] ã®é ã«éžæãã[æ¡ä»¶åŒ] ãéžæããŸã (ãŸãã¯ãããã·ã¥ããŒãç»é¢ã® [ãµã³ãã«] åºæ¬ â æ¡ä»¶åŒ ] ãªã³ã¯ãã¯ãªãã¯ããŸã)ãÂ

次ã«ã[ + å®è¡ã®äœæ ] ãã¿ã³ãã¯ãªãã¯ããååãå ¥åããŸã (äŸ: æ¡ä»¶ä»ãå®è¡ãã¹ã)ãå®éšãéžæãã[ éå§ ] ãã¯ãªãã¯ããŠå®è¡ãéå§ããŸãã å®è¡ã®äžèЧãããã€ãã©ã€ã³ãéžæããŠããã€ãã©ã€ã³ã«ç§»åããŸãã

宿ãããã€ãã©ã€ã³ã®å®è¡ã¯ãäžèšã®å³ 9 ã®ããã«ãªããŸãã ãã®ãã€ãã©ã€ã³ã®ã³ã€ã³æãã¯ã©ã³ãã ãªæ§è³ªãæã£ãŠãããããå®éã®åºåã¯ç°ãªãå¯èœæ§ããããŸãã ã°ã©ãå ã®ããŒããéžæããŠããã®ããŒãã«é¢é£ä»ããããŠããããŸããŸãªã¢ã»ãã (ãã°ãå«ã) ã確èªããŸãã
çµè«
Docker Desktop ã䜿çšãããšãKubernetes ã¯ã©ã¹ã¿ãŒãå¿ èŠãšãããã®ãå«ããããŒã«ã« ãã·ã³äžã§ã³ã³ãã㌠ã¢ããªã±ãŒã·ã§ã³ãç°¡åã«å®è¡ã§ããŸãã Kubeflow ã¯ãéåžžãã¯ã©ãŠãç°å¢ãŸãã¯ãªã³ãã¬ãã¹ç°å¢ã®å€§èŠæš¡ãªã¯ã©ã¹ã¿ãŒã察象ãšãããããã€ã§ãã ãã®èšäºã§ã¯ãKubeflow ã Docker ãã¹ã¯ãããã«ããŒã«ã«ã«ãããã€ããŠäœ¿çšããæ¹æ³ã«ã€ããŠèª¬æããŸãããÂ
åç §
- Docker Desktop
- ã¯ããããŒã«ã€ããŠ
- ããKFã®çè«çæ ¹æ
- Kubernetes
- ã¯ããããŒã¯ããã«
- æŸæµªè
- ããŒãã£ã«ããã¯ã¹
- Kubeflowã®å±éæé
- ããã«ãŒãããžã§ã¯ãã«äŸå
- Kfctl ã³ã³ãã㌠ã€ã¡ãŒãž
ã¯ã¬ãžãã
ãã®æçš¿ãšé¢é£ãããã¯ã«ååããŠãããæ¬¡ã®äººã ã«æè¬ããŸãã
- ã€ãã¹ã»ã¶ã«ã«ãã¹ãã¢ãªã¯ãÂ
- ã³ã³ã¹ã¿ã³ãã£ãã¹ã»ãŽã§ãã¿ãããã¹ãã¢ãªã¯ã
- ãžã§ã·ã¥ã»ãã¿ã ãã¢ãªã¯ã
- ãã¡ããªã»ãããã»ãã»ããŠã©ãã·ã§ã«
- ãžã§ããŒã»ãã«ã·ãªãããã«ãŒ
- ããããã»ã¢ãã³ããã¯ããã€ã¯ããœãã
- ã¹ãã£ãŒãã³ã¿ãŒããŒãããã«ãŒ
- ããããããªãŒãã©ã³ããŒãããã«ãŒ
Docker Desktop ãš Docker ã§ã® Kubernetes ã®å®è¡ã®è©³çްã«ã€ããŠã¯ã以äžãåç §ããŠãã ããã
- Kubernetes ã§åããŠã¢ããªã±ãŒã·ã§ã³ãèšèšããæ¹æ³ã«ã€ããŠèª¬æããŸãã
- Try with Kubernetes, powered by Docker
- Docker Deskto p ãšæ°ã ã Docker Desktop Enterprise ã®è©³çްãã芧ãã ãã